Javascript Onclick事件有时不会';t火灾(IE6/IE7/IE8)
我注意到有时候IE6/IE7/IE8并不总是触发onclick事件(当点击按钮时)。 上次onclick事件触发后,似乎有几秒钟的宽限期 我决定使用以下代码测试此行为:Javascript Onclick事件有时不会';t火灾(IE6/IE7/IE8),javascript,internet-explorer,onclick,Javascript,Internet Explorer,Onclick,我注意到有时候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>
<!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>
window.onload=函数(){
document.getElementById('clicker')。onclick=function(){
变量i=0
返回函数(){
i+=1
this.value=i.toString()
}
}()
}
正如您可能看到的,在IE6-8上,只需点击两次按钮即可启动事件,而对于9/firefox/chrome,每次都会启动事件
这可能是什么原因?IE6和IE8是在使用Windows XP的虚拟机(VirtualBox)上测试的
其他:
- 我对“提交”和“按钮”都有相同的结果李>
- 使用“Onmouseup”作为onclick的替代方案似乎是可行的
- 在旧版本的IE中,您必须同时处理单击和双击
如果你不这样做,只有你双击的第一次点击会被处理,给你这种错觉
试试这个:
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() };
}
我不知道为什么,但也许你的doctype会成为一个问题?尝试使用HTML5 doctype:IE 6到8没有实现HTML5 API谢谢你帮我解决了这个问题。出于某种原因,Onmouseup似乎也能起作用。