這不是我第一次使用setTimeout(),但我無法弄清楚問題是什麼。 setTimeout()的代碼部分正確執行,但是它沒有延遲就立即執行。如果有人能看到這個問題,那會有幫助。代碼如下:Javascript setTimeout忽略時間參數
if(token==1){
img1.src=ssImages[imgNum];
num1=0;
num2=10;
setTimeout('crossFade()',2500);
}
這不是我第一次使用setTimeout(),但我無法弄清楚問題是什麼。 setTimeout()的代碼部分正確執行,但是它沒有延遲就立即執行。如果有人能看到這個問題,那會有幫助。代碼如下:Javascript setTimeout忽略時間參數
if(token==1){
img1.src=ssImages[imgNum];
num1=0;
num2=10;
setTimeout('crossFade()',2500);
}
您確定這是代碼?如果立即執行,通常有兩個原因:
setTimeout(foo(), 1234)
);但是,沒有一個原因適用於您的代碼,因此如果有任何其他調用該函數,請檢查其餘代碼。
無論如何,你應該傳遞一個函數,而不是一個字符串:
setTimeout(crossFade, 2500);
或者,如果你需要指定任何參數:
setTimeout(function() {
crossFade(...);
}, 2500);
@ratSawGod:究竟哪一個信息不應該進一步傳播?任何ThiefMaster所說的都是100%正確的。 *「不起作用」*不是有用的錯誤描述。我們只能用你給我們的東西來工作,到目前爲止,你只給了我們這一行'setTimeout('crossFade()',2500);',它完美地工作。創建一個更完整的示例來演示您的問題。請不要粗魯。其他人正在花費寶貴的時間來幫助你*。 –
我Theifmaster同意。窗戶。 setTimeout的方法有兩個參數:
1)功能或表達 2)時間(ms)
在你的代碼提供一個字符串或表達式:
的setTimeout( '交叉淡入淡出()',.. ..)
這通常不鼓勵使用eval。你應該通過一個功能 - 無論是命名爲:
的setTimeout(淡入淡出,....)
OR的建議匿名:
的setTimeout(函數(){交叉淡入淡出()} ....
這是所有你能做的麻煩,除非你提供一個例子確定的jsfiddle拍這個代碼,看看這個被稱爲上下文。
您正在調用一個函數而不是一個字符串? '的setTimeout( crossFade,2500);' –
@Igor Dymov:不,那不是同一個問題。 – Guffa
請創建一個http://jsfiddle.net/演示,因爲超時本身[工作得很好](http://jsfiddle.net/JAU2Z/)。 –