每隔一次单击Internet Explorer中的链接都不起作用

Every other click of link in Internet Explorer does not work

本文关键字:Explorer 链接 不起作用 Internet 单击 一次      更新时间:2023-09-26

我注意到,当在IE中单击href设置为javascript函数的链接时,第一次单击会起作用,但第二次单击有时不会起作用。第三个会起作用,第四个不会。换句话说,IE只会在每隔一次点击时触发javascript函数。如果您在单击之间长时间暂停,则每次都会触发该功能。但是,当你点击的速度稍微快一点时,它就会跳过每隔一次的点击。其他人注意到这种行为了吗?我在Firefox中没有同样的行为。

以下是一些示例代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Test</title>
        <script type="text/javascript">
        var count = 0;
        function doClick()
        {
            count++;
            document.frm.COUNTER.value = count;
        }
    </script>
</head>
<body>
    <form name="frm" action="">
        <input name="COUNTER" value="0"/>
        <a href="javascript:doClick();">Click Here</a>
    </form>
</body>
</html>

单击非常缓慢,每次都会使计数器递增。即使以稍快的速度点击,它也会跳过点击。IE6/7/8中控件的onclick和onmousedown事件也会发生这种情况。

这是一个问题的原因是,该应用程序是一个销售点系统,我们正在为触摸屏实现屏幕键。因为打字太快而不得不多次按下链接/按钮/键是不可接受的。

您可能会遇到双击事件。

<a href="" onclick="doClick();return false;" ondblclick="doClick();return false;">

这就行了。

据我所知,IE的事件处理程序似乎比其他浏览器慢。

http://jsfiddle.net/F5B54/

我在Firefox、Chrome和IE8中进行了测试。IE确实运行速度较慢/点击失误。

我没有安装IE9,但它应该比IE8更好。

---更新答案---

IE分别处理onclick和dblclick。这意味着,如果您快速单击两次,这将注册为单个dblclick事件。

另一方面,Chrome将注册2个onclick事件和一个dbl点击事件。

因此,将单个元素的单击和双击混合在一起会导致浏览器之间的行为大不相同。