2013-04-02 17 views
0

我有,當我將其放到一個盒子抽出而改變顏色的圖像。的Javascript,圖像不發生變化,而睡眠,除非運行警報()第一

人一旦它投進箱子,我進入下一個畫面。 但是我想先等一下。

但是,當我介紹wait .. 圖像不會改變顏色..即使它確認變色代碼已經運行。

但..如果我設置警報( 「你好」);在停止引擎的代碼之前,然後在等待會話之前發生顏色變化。

這是因爲如果警報();在幕後做了一些事情,導致div的顏色變化發生正確。

如何在運行睡眠方法之前強制執行此顏色更改?

有點像運行警報,而不必有警報實際彈出。

+3

顯示一些代碼將是有用的。警報停止所有執行 – mplungjan

+2

JavaScript中沒有「睡眠」方法。如果你寫你自己的,但問題是幾乎可以肯定你是「忙等待」(做一個緊密的循環,盯住CPU)。你可能想'setTimeout'來代替,該時間表的東西在以後的時間不* *忙等待運行,允許其他事情(比如說,改變圖像)的情況發生。 :-) –

回答

2

沒有睡眠的方法,所以我猜你正在使用while循環進行「睡眠」。 while循環鎖定瀏覽器並阻止頁面更新。警報會稍微延遲並允許頁面更新。

你需要做的是分解你的代碼,並使用setTimeout作爲「睡眠」。

var img = document.getElementById("myImg"); 
img.src = "foo.gif"; 
function nextStep() { 
    alert("do your next step here"); 
} 

window.setTimeout(nextStep, 2000); //2 seconds