2011-09-03 138 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应用程序,并修改它通过改变我的事件之一。对不起,我不记得具体,但它值得一试。