gpt4 book ai didi

javascript - 为什么加载事件的 addEventListener 不适用于 div?

转载 作者:行者123 更新时间:2023-11-29 19:10:54 25 4
gpt4 key购买 nike

在为 load 添加事件监听器时,我不能像对 click 事件那样只使用函数文字。为什么我不能像对点击事件那样使用函数文字?

<body>
<div>some content</div>
<script>
var div = document.getElementsByTagName("div")[0];
// does not work (console is not written to when page loads)...
div.addEventListener("load", function(){console.log("div load event")}, false);
// works (console is written to when div content is clicked...
div.addEventListener("click", function(){console.log("div click event")}, false);
</script>
</body>

最佳答案

load 事件在加载外部内容的元素中触发,例如 imgiframe

事实是 load 事件可能不会在声明事件之前加载内容的情况下触发。因此,如果您希望 load 事件起作用,您需要在 srchref 之前声明它,例如。

一旦 div 被声明,它就已经被加载了。所以不可能在 div 中触发这样的事件。

如果你想知道div,包括它的img等元素已经加载,你必须为每个声明load事件,即:

var loaded = 0;

var images = div.getElementsByTagName("img"),
len = images.length;

function imgload() {
if(++loaded > len) {
console.log("Div loaded.");
}
}

for(var i = 0, img; img = images[i]; i++) img.addEventListener("load", loaded);

关于javascript - 为什么加载事件的 addEventListener 不适用于 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38926809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com