Что не так с линией в заголовке?
В приведенном ниже примере предполагается сделать кнопку, которая будет увеличивать счетчик каждый раз при нажатии. Тем не менее, я применяю задержку в 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/
Можете ли вы попробовать скрипт JS, и что говорит консоль – Sedz
Я запускаю его через браузер, который не вызывает никаких жалоб? – Kaare