2011-09-03 201 views
2

jQTouch有時會觸發我的點擊事件兩次,導致另一個元素(通常是鏈接)在緊接轉換後立即顯示的面板中單擊。jQTouch事件兩次觸發

此問題已經過相當廣泛的討論here但我仍然沒有很好的解決方案。在上面的一個紳士選址論壇提出下面的代碼作爲一種解決方案,但我怕因爲我使用的刷卡並點擊事件,這將不適合我:

allowClick = true; 
function preventGhostClick(){ 
    allowClick = false; 
    setTimeout(function(){ 
     allowClick = true; 
    },800); 
} 

$('#element').bind('tap',function(){ 
    if(!allowClick) return false; 
    app.utils.preventGhostClick(); 

    // do stuff 
}); 

有沒有人有這個問題的經驗和比以上更好的解決方案?非常感謝!

回答

0

我在iPad上看到此問題,可能與webkit版本有關。我在網上看到了兩個我想分享的解決方案。

  1. 首先解除綁定..... exL .unbind('click')。click(function(){});
  2. 看來,如果jQuery代碼是在HTML「頭」標記問題不存在,但只存在身體標記中的jQuery代碼。也許組合頭部和身體,不知道。
+0

這基本上是正確的答案。原來我使用的是jQuery live(),在我的情況下,這導致事件監聽器被多次添加到一個對象中!每次向頁面添加新元素時,我都會使用unbind('click')bind('click')來代替這樣做。這解決了這個問題。謝謝! – morrisbret

1

您是否嘗試將點按事件更改爲點擊或觸碰事件或觸發事件?我記得有一個非常類似的問題與iPad的Web應用程序,並修改它通過改變我的事件之一。對不起,我不記得具體,但它值得一試。