0

我有一个简单的点击处理程序,它在屏幕上做一些事情而不是访问那个链接。这是代码(我正在删除废话,但重要的东西是准确的):

<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

4

1 回答 1

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;
});
于 2013-11-12T11:41:24.577 回答