我有一个简单的点击处理程序,可以在屏幕上执行某些操作,而不是访问该链接。这是代码(我正在删除废话,但重要的东西是准确的):
<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
答案 0 :(得分:1)
尝试使用href="javascript:void();"
<a href="javascript:void();" id="others">Link Text</a>
$('#others').on('click', function(ev){
//ev.preventDefault();
//ev.stopPropagation();
// Doing stuff (some simple DOM manipulation)
return false;
});