Jquery 用于移动Web应用程序的快速按钮
我构建了一个WepApp,我想用谷歌的代码消除触摸设备上300毫秒的延迟 文件Jquery 用于移动Web应用程序的快速按钮,jquery,performance,click,mobile-application,Jquery,Performance,Click,Mobile Application,我构建了一个WepApp,我想用谷歌的代码消除触摸设备上300毫秒的延迟 文件 我不确定,在我的HTC one X上,我看不出两个版本之间有任何区别 演示1(正常) 演示2(使用fastclick修复) 我(在演示2中)在控制台中得到一个额外的错误TypeError:element为null 但是为什么呢?我不明白。这个问题几乎肯定是你的打字错误造成的。这样的类型错误意味着您试图对空对象调用方法。你需要找出你为什么会得到那个打字机错误,然后修复它。如果DOM和jQuery之间没有正确的链接
我不确定,在我的HTC one X上,我看不出两个版本之间有任何区别 演示1(正常)
演示2(使用fastclick修复)
我(在演示2中)在控制台中得到一个额外的错误
TypeError:element为null
但是为什么呢?我不明白。这个问题几乎肯定是你的打字错误造成的。这样的类型错误意味着您试图对空对象调用方法。你需要找出你为什么会得到那个打字机错误,然后修复它。如果DOM和jQuery之间没有正确的链接,google提供的代码就不会有帮助 我认为给你带来麻烦的是
new FastButton(document.getElementById("fastclick"), goSomewhere);
因为我没有看到任何id为fastclick
的元素
请尝试修复该问题并让我知道它是如何工作的您确定检测元素是否被切换的方法是正确的吗?看起来
#onclick
和#onclickJQ
共享一个公共变量来检测它们应该处于哪个状态:bt=0代码>。因此,如果您尝试一个接一个地按,则第二次单击事件将没有可见的更改。要解决此问题,请使用属性存储有关切换状态的数据
JS:
回答您的问题,若要消除延迟,只需使用库中提供的和:
$(document).ready(function() {
$('#onclickJQ').live("tap", function() {
blub('#onclickJQ');
});
});
但是,必须修改第一个演示按钮[带有内联onclick事件],以专门使用tap事件:
$(document).ready(function() {
$('#onclick').live("tap", function() {
blub('#onclick');
});
});
演示:
在iphone4s上测试;第一个div在反复点击时“滞后”,而第二个div运行平稳。在演示2中,当没有这样的元素时,调用getElementById(“fastclick”)
(并导致“element is null”消息)。很可能应该使用getElementById(“onclick”)
或getElementById(“onclickJQ”)
。
$(document).ready(function() {
$('#onclick').live("tap", function() {
blub('#onclick');
});
});