用函數宣告的方式定義了一個改變元素style屬性的函數會報錯
#但是window.onload下不會報錯
PHP中文网2017-07-05 11:01:56
這和函數宣告和匿名沒有關係,而是和函數的呼叫時機有關係。
改成這樣,還能找到和匿名函數的問題麼?
function change () { /* ... */ }
window.onload = change
前者在調用時,box元素還沒有,所以報了錯;後者在DOM ready後調用,所以可以執行。你可以在change函數中log一下box物件看看。
扔个三星炸死你2017-07-05 11:01:56
問題不是這個,你需要知道文檔是從上到下加載的,你把js文件放在了head
裡
執行到js文件的時候,這個時候連body都還沒加載,自然無法獲取到box ,也就無法設定css了。
你可以把js檔案放到body
的尾部:
.
.
.
<script src="./x.js"></script>
</body>
這樣就不需要window.onload
了
如果放在了head裡面
就需要在js檔案頭部寫window.onload=function(){......}