这是一个在桌面浏览器中不会发生的Hammer.js问题。我已在使用WebView的WIP Android应用中验证了这一点
编辑:我也证实了这种情况发生在"互联网" Android附带的浏览器(不是Chrome)(4.4.2如果有帮助的话)。给出以下代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>Test</title>
<script type="text/javascript" language="Javascript" src="jquery-1.11.3.min.js"></script>
<script type="text/javascript" language="Javascript" src="hammer.js"></script>
<style type="text/css">
#wrap { position:fixed; top:0px; bottom:0px; left:0px; right:0px; background:#00f; color:#fff; font-size:24px; text-align:center; }
#wrap a, #wrap a:visited { color:#fff; }
</style>
</head>
<body>
<div id="wrap">
<a href="http://www.stackoverflow.com/">Stack Overflow</a>
</div>
<script type="text/javascript" language="Javascript">
var hammerobj = new Hammer ($('#wrap')[0]);
</script>
</body>
</html>
当我尝试点击我的应用中的链接时,有时它会转到链接,有时它不会。这看起来完全是随机的,但可能是Hammer.js用来决定是否接受&#34; tap&#34;的某种超时。
删除&#34; var hammerobj ...&#34;因此它只是HTML(没有Javascript)显然使链接在所有设备上始终正常工作。这是一个Hammer.js问题。
我的问题是:
是否有人知道如何修复上述代码以允许所有链接点击,表单提交等每次都触发,同时仍允许我使用Hammer.js进行平移,滑动等?
谢谢!
答案 0 :(得分:1)
我自己设法解决了这个问题。显然我的代码中的一个错误导致300毫秒的点击延迟,并阻止了几次点击。
如果有人正在阅读并且好奇,设备上存在300毫秒的点按延迟,因此浏览器可以确定您是否进行了双击。有几个Javascript库可以删除它。我个人使用来自https://github.com/ftlabs/fastclick的FastClick。
<script type="text/javascript" language="Javascript" src="fastclick.js"></script>
<script type="text/javascript" language="Javascript">
FastClick.attach (document.body);
</script>
希望它有所帮助!