我在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()函数触发> 6次:有时是7次,有时是8次,有时还会更多,这似乎取决于我按href链接的速度。我已经尝试在DoSomethingElse()例程中捕获ClickCounter> 6,但没有任何乐趣。我究竟做错了什么?

最佳答案

在这里的其他地方,有一个技巧可确保.on('click')事件仅触发一次:

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


试试看

10-06 12:42