我在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
});
试试看