按下按钮之间的Internet Explorer 8延迟

时间:2015-01-17 18:06:11

标签: javascript html internet-explorer internet-explorer-8

需要快速按一个按钮才能+1值。

<html>
<head>
<script>
   var a = 2;
   function update() {
   document.getElementById('change').innerHTML = a;
   a++;}
</script>
</head>
<body>
<div id="change">1</div>
<input type="button" onclick="update()" value="TEST">
</body>

当我非常快速地点击按钮时,会有延迟。例如,按下按钮十次,但值为6.

在其他浏览器中,一切正常。

2 个答案:

答案 0 :(得分:0)

也许问题是一个名为&#34; ondblclick&#34;对于Internet Explorer。

您可以尝试此问题的解决方案来删除该事件:

Remove OnDblClick Event on Item using jQuery

答案 1 :(得分:0)

Internet Explorer 8肯定存在延迟问题。与Oscar在回答中所说的有些一致,dblclick事件可能会占用一些点击。如果是这种情况,我们可以预期在此期间递增甚至可以消除这个问题。果然,这也是我们处理这个事件时发现的。

(function () {

    "use strict";

    var clicks = 0,
        result = document.getElementsByTagName( "label" )[0],
        button = document.getElementsByTagName( "button" )[0];

    if ( button.addEventListener ) {
        button.addEventListener( "click", increment );
    } else if ( button.attachEvent ) {
        button.attachEvent( "onclick", increment );
        button.attachEvent( "ondblclick", increment );
    }

    function increment () {
        result.innerHTML = ++clicks;
    }

}());

对于支持addEventListener方法(Internet Explorer 9及更高版本)的IE版本,似乎不存在此问题。因此,我们实际上只需要在版本8及更低版本中使用双重绑定。

小提琴:http://jsfiddle.net/vapv60jw/1/

enter image description here