jquery传递函数参数

时间:2012-12-06 22:47:31

标签: jquery function

我使用以下内容进行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的值$但永远不会被正确定义。我的假设是我没有正确传递参数。我的问题在哪里?

1 个答案:

答案 0 :(得分:1)

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

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

查看代码,在浏览器的事件回调中调用您提供给.doubletap()的函数,而没有jQuery选择器的好处。 'this'在:

 function(event){
     doSingleClick(this)
 },

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

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

这是doubletap / click函数已经在使用$ this = $(event.currentTarget)

希望有所帮助。