2011-01-26 150 views
0

發生了一些奇怪的事情,我無法解釋! 當我打電話從JavaScript的例如一個函數:在javascript中調用函數

<script type='text/javascript'> 
    callFunction() 
</script> 

該函數的調用,但它對於非聲明的變量產生一個錯誤。

當我通過鏈路即調用相同的功能:

<a href="#" onclick="callFunction(); return false;"> Link </a> 

功能成功地運行,併產生正確的輸出!

任何想法,爲什麼會發生這種情況?

回答

1

很可能你試圖在聲明它之前調用該函數 - 確保不是這種情況,並且該函數沒有在你嘗試調用它的塊的下面聲明。

1

到那時,第一個腳本被執行了,還沒有功能callFunction呢。但是,當您單擊該鏈接時,該頁面已經加載足夠多,以便該功能可用。

解決方法是在調用函數之前等待頁面加載。幾乎所有的JavaScript框架(JQuery,MooTools等)都提供了一個事件處理函數,當DOM(文檔的底層結構)準備就緒時,這個函數就會被調用。如果您不想使用框架,您也可以等待文檔加載(即加載事件),但通常比domready晚。

+0

謝謝你的解決方案! – m4dgirl 2011-04-20 15:25:05