【发布时间】:2019-08-28 03:56:07
【问题描述】:
动态添加到 #div 的图像的加载事件不起作用,而单击/鼠标悬停等其他事件则正常。
<div id="test">
<img src="https://via.placeholder.com/50" />
</div>
js
$(document).ready(function() {
// does not work
$('#test').on('load', 'img', function() {
alert('loaded');
});
// work fine
$('#test').on('click', 'img', function() {
alert('clicked');
});
setTimeout(() => {
$('#test').append('<img src="https://via.placeholder.com/150" />');
}, 1000);
setTimeout(() => {
$('#test').append('<img src="https://via.placeholder.com/250" />');
}, 2000);
setTimeout(() => {
$('#test').append('<img src="https://via.placeholder.com/350" />');
}, 3000);
});
检查小提琴:https://jsfiddle.net/zkpt2crg/ 有什么方法可以检测动态元素的加载事件?
【问题讨论】:
-
与大多数 jQuery 事件不同,图像上的
load不会冒泡,这是为委托事件提供的。 -
实现您的 sn-p 的链接答案:jsfiddle.net/x941gv3f
标签: javascript