過去,我使用$(window).onload在其他腳本加載後運行一段代碼。在這種情況下,我沒有能力更改JS文件的加載順序,我所關心的代碼需要操作由另一個JS文件動態插入的DOM節點,這個JS文件是在頁面下方加載的。這兩個腳本都位於文檔的底部附近。有沒有人對這種情況有任何建議?在所有其他JS執行後運行jQuery
8
A
回答
0
如果其他腳本完全在加載事件中執行,則可以向同一事件添加處理程序,並將代碼放入setTimeout
調用中(延遲爲1
),這將強制您的代碼在下一個執行期間執行打破。
13
如果您知道期望的元素,則可以使用setInterval
輪詢DOM以查看它們何時被插入。例如,這是你如何能輪詢元素與ID foo
:
$(window).load(function()
{
var i = setInterval(function()
{
if ($('#foo').length)
{
clearInterval(i);
// safe to execute your code here
}
}, 100);
});
2
即使你不能改變的加載順序,你可以改變它是怎麼裝的?我已經在過去使用的時候想加載一些JavaScript,並執行一些代碼,我確信它有加載完成後
一件事是jQuery的$ .getScript:
$.getScript('javascripttoload.js', function() {
//do the DOM manipulation you were talking about...
});
1
1
的問題是試圖聲明一個變量對象之前存儲的jQuery對象在頁面上。將這些聲明移動到僅在$(window).load後綁定的單擊事件之後執行的代碼塊才能解決問題。
感謝所有的提示,但!
相關問題
- 1. 如何在啓動時執行其他所有命令後執行命令?
- 2. 如何在處理所有其他事件後運行代碼
- 3. 在所有其他點擊事件之後執行jquery點擊事件可能會執行嗎?
- 4. 在Colorbox內執行JS(或其他jQuery插件)?
- 5. 從其他JS執行一個函數
- 6. 執行之前,所有其他的httpClient執行都需要等待其他失敗執行先失敗嗎?
- 7. JS - 強制函數在其他函數之後運行
- 8. 從其他.js運行java事件
- 9. Cron在其他cron之後運行
- 10. 在其他功能之後運行UDF?
- 11. Excell RefreshAll在其他宏之後運行
- 12. Android線程 - 在執行所有其他線程之前執行一個線程
- 13. 確保只有在完全執行了所有PHP之後才執行jQuery
- 14. 裹在其他可執行
- 15. 執行模運算的其他方法
- 16. 在WordPress上運行其他javascript後運行javascript
- 17. 在JQUERY完成其他方法後運行一個方法
- 18. jQuery在其他代碼之後運行C#代碼
- 19. ios上的SqlClient在函數中的所有其他代碼之後執行
- 20. AutoIT腳本在執行後再次運行,不需要其他調用
- 21. 執行exe文件一個完成,然後執行其他
- 22. 確保在jQuery中運行其他代碼之前完全執行循環
- 23. 如何在其他系統中運行可執行文件jar?
- 24. 如何在後臺運行其他功能時在後臺運行功能?
- 25. 如何在所有其他瀏覽器上運行Opera?
- 26. Docker,連接拒絕其他所有正在運行的服務
- 27. Angular Js在Ajax後運行
- 28. 摩卡運行後,所有類別運行的所有測試
- 29. 如何在完成所有其他代碼後運行此函數?
- 30. 在所有其他作業之後播放框架運行作業
**如果**正在執行另一個腳本?它使用AJAX嗎? – SLaks 2011-03-31 02:42:33