我有一个简单的点击处理程序,它在屏幕上做一些事情而不是访问那个链接。这是代码(我正在删除废话,但重要的东西是准确的):
<a href="#" id="others">Link Text</a>
<script type="text/javascript" src="./path/to/jquery.js"></script>
<script type="text/javascript">
$('#others').on('click', function(ev){
ev.preventDefault();
ev.stopPropagation();
// Doing stuff (some simple DOM manipulation)
return false;
});
</script>
这在适当的浏览器上运行良好。它在 Android 上运行良好(较旧的 webkit 和较新的 Chrome 版本),在 iPad 2 上的 iOS 上运行良好......但我的一个用户正在使用 iPhone 4,这就是所有乐趣的开始。
当他们单击链接时,链接会加载。尽管没有三个单独的触发器,但该事件仍在触发。其他 javascript 正在页面上工作,正如我所说,这在其他任何地方都有效。其实为了混淆视听,事件是非常非常偶尔被压制的。不到 1% 的时间。
那么这是 iPhone 的一个已知问题吗?有没有更好的方法来做这一切?
javascript 在正文的末尾加载(仍在正文中,但在它提到的所有 DOM 元素之后)。jQuery 版本是 1.10.1