FastClick 在 Phonegap 项目中抛出 .on('click') 循环计数
FastClick throws off .on('click') loop count in Phonegap project
我将以下内容附加到 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') 事件在触摸屏环境中产生的 300 毫秒延迟,所以我安装了 FastClick.js 库,它监视 touchend 事件并发送一个合成点击 .on('click') 事件。
但现在 DoSomethingElse() 函数触发 > 6 次:有时 7 次,有时 8 次,有时更多,似乎取决于我按下 href 的速度 link。我已经尝试在 DoSomethingElse() 例程中捕获 ClickCounter > 6,但没有任何乐趣。我做错了什么?
这里的其他地方有一个关于确保 .on('click') 事件只触发一次的提示:
$(element).off().on('click', function() {
// function body
});
试试看。
我将以下内容附加到 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') 事件在触摸屏环境中产生的 300 毫秒延迟,所以我安装了 FastClick.js 库,它监视 touchend 事件并发送一个合成点击 .on('click') 事件。
但现在 DoSomethingElse() 函数触发 > 6 次:有时 7 次,有时 8 次,有时更多,似乎取决于我按下 href 的速度 link。我已经尝试在 DoSomethingElse() 例程中捕获 ClickCounter > 6,但没有任何乐趣。我做错了什么?
这里的其他地方有一个关于确保 .on('click') 事件只触发一次的提示:
$(element).off().on('click', function() {
// function body
});
试试看。