【问题标题】:Internet Explorer 8 delay between pressing the button按下按钮之间的 Internet Explorer 8 延迟
【发布时间】:2015-01-18 05:10:17
【问题描述】:

需要快速按下一个按钮来为该值+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。

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

【问题讨论】:

  • 我们这些凡人没有办法修复旧的蹩脚浏览器!
  • 那么你的问题是什么?
  • @squint:他的问题是“我怎样才能消除延迟?”
  • 我无法在 IE11 中以每秒 4 次点击的速度复制该问题,但过去我看到过不太理想的点击响应。尝试使用 onmousedown 代替。它还有一个额外的好处是立即行动,而不是等待鼠标按钮被释放。

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


【解决方案1】:

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 方法的IE 版本(Internet Explorer 9 及更高版本)似乎不存在此问题。因此,我们实际上似乎只需要版本 8 及以下版本中的双重绑定。

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

【讨论】:

    【解决方案2】:

    也许问题在于 Internet Explorer 的一个名为“ondblclick”的事件。

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

    Remove OnDblClick Event on Item using jQuery

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-05
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多