【发布时间】:2010-10-28 23:38:36
【问题描述】:
是否可以通过 jQuery 事件检测所有图像何时加载?
理想情况下,应该有一个
$(document).idle(function()
{
}
或
$(document).contentLoaded(function()
{
}
但我找不到这样的东西。
我想像这样附加一个事件:
$(document).ready(function()
{
var imageTotal = $('img').length;
var imageCount = 0;
$('img').load(function(){if(++imageCount == imageTotal) doStuff();});
}
但是如果图片加载失败,这会中断吗?在正确的时间调用该方法至关重要。
【问题讨论】:
-
为什么不使用onload事件:$(window).load(doStuff)?然而,Onload 也会等待其他资源(例如脚本、样式表和 Flash),而不仅仅是图像,这对您来说可能合适也可能不合适。
-
将加载事件附加到所有 img 标签,就像您在代码示例中所做的那样,应该可以正常工作。如果图像无法加载 doStuff() 将不会被调用,但考虑到您必须加载所有图像的要求,这似乎是合理的。
-
自 jQuery 1.8 起 .load() 方法已被弃用。看看这个:stackoverflow.com/questions/3877027/…