當你打算呼叫一些jQuery程式碼顯示隱藏的一個元素,並呼叫setTimeout()在一段延遲之後設定其HTML的內容:
整個頁面的程式碼是這樣的.
.show()確實調用成功了.但是.text()調用失敗了.console顯示text未定義.
對於這個問題,我確實沒有找到更好的答案...我想是不是jQuery對這個傳入setTimeout()函數的內容做了修改導致變數失效.
我緊接著做了下一個實驗.
程式碼如下:
我要看看是不是確實是jQuery出了問題.得到的是同樣的錯誤.
後來找了本書看了看.發現了問題的所在.
setTimeout() 接受一個字串參數時,它執行於全域作用域,也就是說,它位於任何函數之外.最簡單的修復手段就是使用一個局部函數(匿名函數)來解決這個問題.
程式碼如下:
成功解決這個問題.