我注意到有时IE6 / IE7 / IE8并不总是触发onclick事件(点击按钮时)。 在最后一次onclick事件被触发后,似乎有几秒钟的宽限期。
我决定使用以下代码测试此行为:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script type="text/javascript">
window.onload = function(){
document.getElementById('clicker').onclick = function(){
var i = 0
return function(){
i+= 1
this.value = i.toString()
}
}()
}
</script>
</head>
<body>
<input type="submit" value="click here" id="clicker"/>
</body>
</html>
Browser Comparison (at 1/4 speed) 正如您可能看到的那样,只需点击两下按钮即可在IE 6-8上触发事件,而对于9 / firefox / chrome,事件每次都会触发。
原因可能是什么? IE6和8在使用Windows XP的虚拟机(VirtualBox)上进行了测试。
其他:
答案 0 :(得分:2)
在IE的旧版本中,您必须同时处理Click和Double。
如果你不这样做,只会点击你的双击第一次点击,给你这种错觉。
试试这个:
window.onload = function() {
var i = 0;
document.getElementById('clicker')
.onclick = function() { this.value = (i+=1).toString() };
document.getElementById('clicker')
.ondblclick = function() { this.value = (i+=1).toString() };
}