FastClick会在Phonegap项目中抛出.on('click')循环计数

时间:2015-02-06 21:12:07

标签: javascript jquery fastclick.js

我将以下内容附加到href标记:

$('body').on('click', '.classidentifier', function(e) 
    {
     DoSomething();
    }); 

DoSomething()函数包含一个应该触发六次的递增循环:

var DoSomething = function() {
    if (ClickCounter < 6) {
    ClickCounter++  
    DoSomethingElse();
    };  
    if (ClickCounter == 6 ){
    BailYouAreDone();
    ClickCounter = 0; }
    }

所有在浏览器环境中都能正常点击鼠标。 它在编译的PhoneGap应用程序中也运行良好。

但是我厌倦了在触摸屏环境中发生的.on('click')事件的300ms滞后,所以我安装了FastClick.js库,它监视touchend事件并发送合成点击到.on( 'click')事件。

但现在DoSomethingElse()函数触发&gt; 6次:有时7次,有时8次,有时更多次,似乎取决于我按下href链接的速度。我已尝试捕获ClickCounter&gt; 6在DoSomethingElse()例程中,但没有快乐。我做错了什么?

1 个答案:

答案 0 :(得分:1)

其他地方有一个提示,确保.on('click')事件只触发一次:

$(element).off().on('click', function() {
// function body
});

试试吧。