按下按钮之间的 Internet Explorer 8 延迟
Internet Explorer 8 delay between pressing the button
需要快速按下一个按钮来为该值+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.
在其他浏览器中一切正常。
也许问题是 Internet Explorer 的一个名为 "ondblclick" 的事件。
您可以尝试此问题的解决方案来删除该事件:
Remove OnDblClick Event on Item using jQuery
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 及以下版本中的 double-binding。
Fiddle: http://jsfiddle.net/vapv60jw/1/
需要快速按下一个按钮来为该值+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.
在其他浏览器中一切正常。
也许问题是 Internet Explorer 的一个名为 "ondblclick" 的事件。
您可以尝试此问题的解决方案来删除该事件:
Remove OnDblClick Event on Item using jQuery
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 及以下版本中的 double-binding。
Fiddle: http://jsfiddle.net/vapv60jw/1/