2012-12-06 167 views
0

我正在使用下面的一个双击/单击一个DOM元素。jquery传递函数参数

$(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 $ a的值,但从来没有得到正确定义。我的假设是我没有正确传递参数。我的问题在哪里?

+1

代码看起来很好,你不想要$但包含一个jQuery对象,该对象包装了被重叠的元素。 –

回答

1

看起来你拉从这里验证码:

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

看代码,您所提供的功能,.doubletap()被调用从浏览器的事件回调,没有好处的jQuery选择器。 'this'在:

function(event){ 
    doSingleClick(this) 
}, 

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

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

这是什么doubletap /点击功能已经与此= $ $的做(event.currentTarget)

。希望帮助。