iPhone与Javascript事件抑制

时间:2013-11-12 11:30:45

标签: javascript jquery iphone javascript-events

我有一个简单的点击处理程序,可以在屏幕上执行某些操作,而不是访问该链接。这是代码(我正在删除废话,但重要的东西是准确的):

<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

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;
});