我試圖暫停一個功能,直到另一個功能已完成其任務。有沒有類似於.ajaxComplete(),但完成一個功能?檢查功能是否已完成使用JavaScript/jQuery的任務
這段代碼應該先打印出「測試」,然後放慢速度(如果你願意,減速)。隨着循環中的數字變得更高,setTimeout變長,因此,隨着循環的繼續,它會打印「較慢」。基本上,我需要循環暫停,直到功能打印。
編輯 - 我更新了我的代碼。 「測試」只打印一次,沒有其他事情發生。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<input type="button" value="Display alert box" onclick="docWrite()" />
<script>
var b = 0;
function docWrite() {
document.write("test");
timeMsg();
}
function timeMsg() {
b += 250;
if (b < 5000) { //check the limit
setTimeout("docWrite()", b - 250); //substract 250 (because we already added 250 before the first print
}
}
</script>
</body>
</html>
您應該避免使用全局變量。它使你的代碼更難理解。 –
'//暫停循環直到docWrite完成'是不可能的。除了極少數例外,你不能在JS中阻塞調用。您需要使用回調函數來設置異步操作完成後需要運行的內容。 –
'//暫停循環直到docWrite完成---這會凍結瀏覽器並且不可接受 – zerkms