當我使用將數據「追加」到使用prototype/jquery的現有元素的方法時,將這種邏輯封裝在document.observe("dom:loaded", foo)
/$(document).ready(foo)
函數中是否是一種很好的做法?何時使用dom:loaded/document.ready事件
1
A
回答
1
那麼,考慮到在DOM/window準備好之前引用元素將不起作用,除非它是html
元素,或者直接在標記中注入元素,是的,這是真正完成它的唯一方法。
<!doctype html>
<html>
<head>
<script>alert(document.getElementById('foo'));</script>
</head>
<body>
<p id="foo"></p>
</body>
</html>
以上將失敗並返回null。
+0
這是可以理解的,但是如果我在關閉p標記之後立即移動腳本,它仍然可以工作嗎? – 2010-07-06 10:25:41
+0
是的,這就是我所說的「你直接在標記之後注入元素」 – 2010-07-06 15:43:40
2
沒有就緒/加載的事件,只有在頁面底部纔會觸發代碼。這是因爲當代碼從<head>
部分讀取(在主體之前執行)時,元素不存在。
試試這個:
$("body").animate({'background-color', '#ff0000'}, 2000);
然後試試這個:
$(document).ready(function() {
$("body").animate({'background-color', '#ff0000'}, 2000);
});
你會明白我的意思:)
相關問題
- 1. 何時使用弱事件?
- 2. 瞭解何時使用事件以及何時使用回調
- 3. 何時使用自定義c#事件
- 4. 何時使用事件總線?
- 5. 何時使用域名事件?
- 6. 使用Cocos2d計時事件
- 7. 何時調用「DOMNodeInserted」事件?
- 8. 如何使用同時鼠標按下事件上使用jquery
- 9. 何時需要使用自動屬性以及何時使用propertychanged事件?
- 10. 在node.js中,何時使用事件,何時使用直線回調函數?
- 11. 如何使用$事件Angularjs
- 12. 如何使用事件?
- 13. 如何使用事件
- 14. 如何使用bodymovin.js事件
- 15. 如何使用MySQL事件
- 16. 如何使用MouseListener事件
- 17. 如何使用onchange事件?
- 18. 如何使用TextChanged事件?
- 19. 在Datomic中使用事件時間而不是事務時間?
- 20. 如何在使用matplotlib時準時繪製事件
- 21. window.onblur事件在使用IE8時也會觸發window.onfocus事件
- 22. 使用事件採購時存儲事件
- 23. 如何使用Selenium 2使用事件
- 24. 何時在代碼中使用控件事件?
- 25. 使用事件驅動套接字時如何生成網絡事件FD_WRITE?
- 26. 使用Google日曆檢索事件時未顯示任何事件
- 27. 一個事件中使用FubuMVC.ServerSentEvents時
- 28. 更新時使用哪個GridView事件?
- 29. 使用clearTimeout取消超時事件
- 30. 使用UpdatePanel時事件不會觸發
它不僅是很好的做法,這是絕對必要的! – 2010-07-06 09:58:48
這個頁面上的所有罐頭示例(http://api.jquery.com/append/)似乎都不包含'$(document).ready()'中的附加代碼......所以我仍然想知道它的絕對有必要。 – 2010-07-06 10:28:09
這些應該是非常簡潔的例子。真實世界的代碼總是在一個外部文件中,並且類似這樣的操作在dom ready回調中。對於快速hackup示例,您可以使用鏈接的表單。 – 2010-07-06 15:44:53