0

我将以下内容用于 DOM 元素的双击/单击。

$(selector).doubletap(
     /** doubletap-dblclick callback */
     function(event){          
          var $this = $(event.currentTarget);
     },

     /** touch-click callback (touch) */
     function(event){
         doSingleClick(this)
     },
     /** doubletap-dblclick delay (default is 500 ms) */
     400
);

我从上面调用的另一个函数:

 function doSingleClick(but) {
      var $but = $(but);

      if($but.closest("#domElementId").length < 1)
          return;

      //"I have more code here to handle the if statement"
 }

doSingleClick 函数永远不会超过返回 b/c 的值,但永远不会正确定义。我的假设是我没有正确传递参数。我的问题在哪里?

4

1 回答 1

1

看起来你从这里提取了这段代码:

http://appcropolis.com/implementing-doubletap-on-iphones-and-ipads/

查看代码,您提供给 .doubletap() 的函数是在来自浏览器的事件回调上调用的,而没有 jQuery 选择器的好处。“这个”在:

 function(event){
     doSingleClick(this)
 },

可能是 Window 上下文,而不是您期望的元素。修复它的最简单方法是使用当前元素作为输入:

 function(event){
     doSingleClick(event.currentTarget)
 },

这就是双击/单击功能已经在使用 $this = $(event.currentTarget)

希望有帮助。

于 2012-12-11T14:37:53.523 回答