由于webkit浏览器处理触摸事件,我尝试了几种不同的方法来消除300ms延迟。库FastClick.js似乎是首选的方法,但我在实现它时遇到了一些麻烦。我已经包含它并且还添加了一个事件监听器,但我不知道我是否正确添加了监听器。这应该工作还是我没有做某事? 谢谢!
考虑下面的代码,在哪里
<!DOCTYPE html>
<html>
<head>
<title>
Calculator
</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum- scale=1.0, user-scalable=no;">
<meta charset="utf-8">
<script type="text/javascript" charset="utf-8" src="phonegap.js">
</script>
<<script type='application/javascript' src='js/fastclick.js'></script>
<script type="text/javascript">
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady, false);
$(function() {
FastClick.attach(document.body);
});
}
function onDeviceReady()
{
}
</script>
<script>
window.addEventListener('load', function() {
new FastClick(document.body);
}, false);
</script>
<link rel="stylesheet" href="./css/jquerymobile.css" type="text/css">
<link rel="stylesheet" href="./css/jquerymobile.nativedroid.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body onload="onBodyLoad()">
<!--START OF PAGE 1-->
<div data-role="page" data-theme='b' id="one">
<div data-role="content">
<a href="#one" data-transition="none" data-
</div>
</div>
</body>
答案 0 :(得分:17)
尝试使用以下代码。
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
alert('test');
FastClick.attach(document.body);
}
如果一切正常,您应该能够看到提醒框。
查看http://phonegap-tips.com/articles/fast-touch-event-handling-eliminate-click-delay.html
答案 1 :(得分:0)
我还可以想到另一个解决方案..注意:我没有亲自试过这个..
$(document).on('pageinit', '.ui-page', function (event, data)
{
FastClick.attach(activePage);
});
答案 2 :(得分:0)
您应该使用jQuery Mobile中的内置vclick
event - 与FastClick相同的想法。
$(document).on('vclick', '#someButton', function(){
});