您确定您检测元素是否被切换的方法是正确的吗?它看起来像两者#onclick
并#onclickJQ
共享一个公共变量来检测它们应该处于哪个状态:bt = 0;
. 因此,如果您尝试一个接一个地按下,第二次点击事件将没有可见的变化。为了解决这个问题,使用属性来存储关于切换状态的数据......
JS:
function blub(selector) {
if ($(selector).attr("attr-bt") == "0") {
$(selector).attr("attr-bt", "1");
$(selector).css('background-color', '#aa0000');
}
else {
$(selector).attr("attr-bt", "0");
$(selector).css('background-color', '#333333');
}
}
$(document).ready(function() {
$('#onclickJQ').attr("attr-bt", "0");
$('#onclick').attr("attr-bt", "0");
});
回答您的问题,要消除延迟,只需使用jQueryMobile和库提供的点击事件:
$(document).ready(function() {
$('#onclickJQ').live("tap", function() {
blub('#onclickJQ');
});
});
但是,必须修改第一个演示按钮 [带有内联 onclick 事件] 以专门使用点击事件:
$(document).ready(function() {
$('#onclick').live("tap", function() {
blub('#onclick');
});
});
演示: http: //fiddle.jshell.net/jnY2n/4/show/
在 iPhone 4S 上测试;第一个 div 在重复点击时会“滞后”,而第二个 div 运行平稳。