我在页面触发后使用以下内容进行检查,以查看容器中的所有图像是否都已正确呈现:
$(window).bind('load', function() {
$('.imagecontainer').each(function() {
if ((typeof this.naturalWidth != "undefined" && this.naturalWidth == 0) || this.readyState == 'uninitialized') {
// Image not available so handle
}
});
});
如果在首次加载期间在页面上呈现图像,则这一切都有效。
但是我遇到了由用户操作驱动图像动态加载的情况。
有什么办法可以改变我的代码来处理这个问题吗?我知道.live()jquery函数但不知道如何在这里引入它。
答案 0 :(得分:1)
实时功能正是您想要的。实际上,您只需要在示例中将bind
替换为live
以处理将来的案例。
文档:http://api.jquery.com/live/
- 在jQuery 1.3.x中,只有以下JavaScript事件(除自定义事件外)才能与.live()绑定:click,dblclick,keydown,keypress,keyup,mousedown,mousemove,mouseout,mouseover和mouseup。
- 从jQuery 1.4开始,.live()方法支持自定义事件以及所有JavaScript事件。从jQuery 1.4.1开始,即使是焦点和模糊也可以实时使用(映射到更合适,冒泡,事件的焦点和焦点)。
- 从jQuery 1.4.1开始,可以指定悬停事件(映射到mouseenter和mouseleave,然后映射到mouseover和mouseout)。
(您需要在.live('load')
支持下使用1.4+。)