是否可以通过jQuery事件检测到何时加载了所有图像?
理想情况下,应该有一个
$(document).idle(function()
{
}或
$(document).contentLoaded(function()
{
}但我找不到这样的东西。
我想像这样附加一个事件:
$(document).ready(function()
{
var imageTotal = $('img').length;
var imageCount = 0;
$('img').load(function(){if(++imageCount == imageTotal) doStuff();});
}但是,如果图像加载失败,这会中断吗?在正确的时间调用该方法是至关重要的。
发布于 2012-03-07 02:38:59
根据jQuery的documentation,对于对图像使用load事件有许多注意事项。正如在另一个答案中所指出的,ahpi.imgload.js插件被破坏了,但是链接的保罗·爱尔兰要点不再被维护。
根据保罗·爱尔兰的说法,用于检测图像加载完成事件的规范插件现在位于:
发布于 2009-07-10 15:08:13
如果您不想检查所有图像,但要检查特定的图像(例如,在DOM完成后动态替换的图像)您可以使用以下命令:
$('#myImage').attr('src', 'image.jpg').on("load", function() {
alert('Image Loaded');
}); 发布于 2011-09-05 18:33:56
你可以使用我的插件来处理这个问题。
$(document).waitForImages(function() {
// Loaded.
});这样做的好处是您可以将其本地化到一个祖先元素,并且它可以optionally检测在CSS中引用的图像。
不过,这只是冰山一角,请查看documentation了解更多功能。
https://stackoverflow.com/questions/910727
复制相似问题