2012-12-06 214 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)

。希望幫助。