Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 用于移动Web应用程序的快速按钮_Jquery_Performance_Click_Mobile Application - Fatal编程技术网

Jquery 用于移动Web应用程序的快速按钮

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之间没有正确的链接

我构建了一个WepApp,我想用谷歌的代码消除触摸设备上300毫秒的延迟

文件

我不确定,在我的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');
    });
});​