我的应用程序中出现问题。当用户单击div
应该触发事件的事件时,有时(大约 1/10)什么都不会发生 -onclick
事件没有被触发,其他时候一切顺利。这很奇怪……
在简短的代码中,我可以复制该问题:
<html>
<head>
<style type="text/css">
.links:hover{
text-decoration: underline;
cursor: pointer;
}
</style>
</head>
<body>
<span id="init_panel" style="visibility:visible; position:absolute; left:0px; top:0px;"></span>
<script type="text/javascript">
function init_match(){
alert("in init_match()");
//...
}
var flag=true;
function loop(){
if (flag){
var div = document.getElementById("init_panel");
var HTML = "<div class='links' onclick='init_match();'><font color='black'><b>new match!</b></font></div><br />";
if (div.innerHTML!=HTML){
div.innerHTML=HTML;
}
setTimeout(loop, 1000);
}
else{
div.innerHTML="";
}
}
loop();
</script>
</body>
</html>
我需要用JavaScript更改一系列div的内容和对应的链接;这就是为什么我需要一个类似的代码。我希望有人能澄清如何在事件中避免这个问题,我非常感谢任何帮助!
编辑以添加以下信息:
我添加了以下js代码:
document.onclick = my_handler;
function my_handler() {
alert("the document was clicked!");
}
结果是:在另一个onclick失败的同时,这个document.onclick也失败了。这很奇怪!我想更新 div 的内容,而不会在他们的 onclick 事件上失败......
可以看到此错误的 jsfiddle 的最新版本位于:http:
//jsfiddle.net/grSDs/3/
不同浏览器的成功率和失败率会随着脚本直接运行或通过 jsfiddle 接口运行(不同情况下的成功率从 ~90% 到 ~0%)而变化。