2014-03-19 120 views
0

我有一個函數,檢查圖像加載是否正常。當我在函數中使用alert時,它會返回true,但是當我在函數後面使用時,它始終是錯誤的。我該如何解決這個問題?函數變量不傳遞到外部

var isInstalled = false; 

function checkimg(){ 

isInstalled = true; 

} 

alert(isInstalled); 

<img id="fire" src="player.png" onload="javascript: checkimg()" \> 

回答

1

在你的代碼中,alert(isInstalled);將在函數checkimg()被調用之前調用,所以,你看不到變量isInstalled的變化如預期

+0

如何根據預期查看變量isInstalled的變化? – user3304007

+1

在結尾處是一種情況,另一種情況是,您可以創建超時。 setTimeOut(checkIsInstall,1000); – VinhNT

+1

函數checkIsInstall(){ if(isInstalled){ setTimeOut(checkIsInstall,1000); (「Loaded」);其他{ } else { alert(「Loaded」); } } – VinhNT

0

你看,你在定義isInstalled變量的同一時刻調用alert,所以alert會顯示它的值 - false。把警報放入checkimg函數中,看看它是否有效。

+0

但我不應該這樣做,我的問題是如何使它工作。在函數外部使用變量。 – user3304007

+0

你不能像現在這樣完成它的工作。問題是在函數checkimg()甚至執行之前調用alert。 – Flasz