Javascript 我可以在带有img元素的for循环中使用addEventListener吗
我知道addEventListener对IE不友好,但我对这种方法总的来说很好奇 我尝试在循环中使用带有imgs的“onload”addEventListener,而不是我的函数不触发。看起来事件侦听器只是被添加到第一个元素中。图像路径来自于一些PHP,我正试图从HTML中去掉onload 最初我是这样做的(摘自PHP的HTML): 我是否应该一起避免使用addEventListener(IE的b/c)。当我在循环中直接使用elem.onload时,我确实看到doIt启动Javascript 我可以在带有img元素的for循环中使用addEventListener吗,javascript,addeventlistener,Javascript,Addeventlistener,我知道addEventListener对IE不友好,但我对这种方法总的来说很好奇 我尝试在循环中使用带有imgs的“onload”addEventListener,而不是我的函数不触发。看起来事件侦听器只是被添加到第一个元素中。图像路径来自于一些PHP,我正试图从HTML中去掉onload 最初我是这样做的(摘自PHP的HTML): 我是否应该一起避免使用addEventListener(IE的b/c)。当我在循环中直接使用elem.onload时,我确实看到doIt启动 // this wil
// this will fire the doIt!
elem.onload = doIt();
谢谢 我建议使用JQuery,它与几乎所有浏览器都兼容,并且非常容易编写您要执行的操作:
$('img').load(function() {
// Handler for .load() called.
console.log("YO!");
});
但是,您的代码似乎是正确的。更改为
elem.addEventListener('load', doIt, false);
你把事件类型搞错了。您的是指
attachEvent
。有关事件类型的完整列表,请查看。如果您只附加一个侦听器(这是绝大多数情况),最简单的方法就是将其添加到相应的属性中:
var i = document.images.length;
while (i--) {
document.images[i].onload = doIt;
}
这将适用于所有支持脚本的浏览器。太棒了!谢谢你的链接!!我在MDN上支持类似的东西。链接实际上列在MDN上,-)Dottoro的支持和HTML参考肯定很好。这是我在MDN上找到的一个李星:啊,我明白了!这现在是有道理的,避免了IE问题。我会的,谢谢!
$('img').load(function() {
// Handler for .load() called.
console.log("YO!");
});
elem.addEventListener('load', doIt, false);
var i = document.images.length;
while (i--) {
document.images[i].onload = doIt;
}