[英]Is there a “element ready” event when a HTML element is inserted into DOM?
[英]When is a DOM element “ready”?
這聽起來像一個愚蠢的問題,我傾向於使用:
$(document).ready(function() { });
但是基本的問題。
假設我有一個像這樣的元素列表:
<body>
<p>Paragraph</p>
<div>Div</div>
<div id="HelloWorld">Hello, World</div>
<script>
var hw = $('#HelloWorld');
$(document).ready(function() {
// hw is available for me here
});
</script>
<p>Another paragraph</p>
</body>
似乎div可用,並且我沒有遇到錯誤,但是在技術上有什么問題嗎? 不是說完美的組織代碼,而是對手頭的技術問題感到好奇。
所以我想問題是:
DOM元素是否被認為是完整的並且在瀏覽器讀取后就可用,而不管其余元素是否已加載?
似乎div可用,並且我沒有遇到錯誤,但是在技術上有什么問題嗎?
不行 只要腳本在元素存在之后才運行,您就可以訪問它。 腳本標記中位於其所引用元素的標記之后的script
將能夠始終跨瀏覽器訪問該元素。
始終有效:
<div id="foo">...</div>
<script>
$("#foo")...
</script>
永遠無法運作:
<script>
$("#foo")...
</script>
<div id="foo">...</div>
僅由於jQuery延遲執行ready
回調而有效:
<script>
$(document).ready(function() {
$("#foo")...
});
</script>
<div id="foo">...</div>
這是普遍建議將script
標記放在文檔末尾</body>
標記之前的原因之一。 這樣,他們就可以訪問在其上方定義的所有元素。 (而且他們不會延遲頁面的初始顯示,這通常是 (但並非總是)您想要的...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.