在Javascript中,我想創建一個鼠標點擊處理程序。然後,我希望能夠在運行下一行代碼之前「忙等待」幾秒鐘*但在「忙等待」中,我仍然能夠處理鼠標單擊事件。'onmousedown'未被JavaScript調用
爲什麼下面的代碼會完全運行while
循環,然後激活處理程序? (如,爲什麼不鼠標點擊事件處理程序不斷得到所謂的中間忙碌等待while
循環?)
<html>
<body>
<p id="debugMessageElement"> </p>
<script type="text/javascript">
canvas=document.createElement("canvas")
var ctx = canvas.getContext("2d");
canvas.width = 840;
canvas.height = 560;
document.body.appendChild(canvas);
var mouse_input = function(event){
document.getElementById("debugMessageElement").innerHTML = event.pageX + ", " + event.pageY + "<br />"
}
canvas.onmousedown = mouse_input;
timeallowed = 3
start = Date.now()
while(true){
now = Date.now()
delta = now - start
if(delta >= timeallowed*1000){
document.write("" + timeallowed + " seconds has passed")
break;
}
}
</script>
</body>
</html>
*是我設計就像上面我的代碼的原因是最終因爲我想這樣做:
for(p in person){
for(t in person[p].shirts){
busy_wait_5_seconds() //However, I want to process mouse clicks in these five seconds.
//THEN move on to the next shirt... After five seconds...
}
}
PS如果您要測試此代碼,請注意我使用了HTML5畫布,因此某些瀏覽器可能無法工作?
你錯過了分號,特別是在你的'debugMessageElement'行。可能會造成問題.. –
抱歉。 Javascript實際上並不關心分號,所以不幸的是這不是問題(我希望它很簡單!)。我習慣於Ruby和Python,所以我不使用分號。但謝謝你的提示。我正在慢慢轉換到JS –
JavaScript是否關心分號碼,但一些瀏覽器不會,他們會自行決定插入缺少的分號碼。我強烈建議你堅持規範並明確使用分號。 –