标题中的行有什么问题?
下面的示例应该创建一个按钮,每次单击该按钮时都会增加一个计数器。但是,我强制在按钮单击之间延迟 2000 毫秒。但是,如果我使用注释掉的行而不是
document.getElementById("rollButton").onclick=function(){calculation()};
(都在函数 afterWaiting() 中)
我得到了各种奇怪的结果,例如计数器开始增加超过 1,等待时间消失了?
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
function afterWaiting()
{
$("#rollButton").css("color","black");
//$("#rollButton").click(function(){calculation()});
document.getElementById("rollButton").onclick=function(){calculation()};
}
var counter=0;
function calculation()
{
////Enforcing wait:
document.getElementById("rollButton").style.color="red";
document.getElementById("rollButton").onclick="";
window.setTimeout("afterWaiting()",2000);
counter=counter+1;
document.getElementById("test").innerHTML=counter;
}
</script>
</head>
<body>
<button type="button" onclick="calculation()" id="rollButton"> Roll! </button>
<p id="test"> </p>
</body>
</html>
我误解了什么?
提前致谢 :)
JSFiddle:http: //jsfiddle.net/Bwxb9/