请求jQuery的官方方法是在执行某事之前等待所有映像加载

请求jQuery的官方方法是在执行某事之前等待所有映像加载

在jQuery中,当您这样做时:

$(function() {
   alert("DOM is loaded, but images not necessarily all loaded");});

它等待DOM加载并执行代码。如果没有加载所有图像,那么它仍然执行代码。如果我们初始化任何DOM内容,比如显示或隐藏元素或附加事件,这显然是我们想要的。

假设我想要一些动画,我不希望它在加载所有图像之前运行。在jQuery中是否有一种官方的方法来做到这一点?

我最好的方法就是<body onload="finished()">,但我真的不想那样做,除非我必须这样做。

注意:有一个jQuery 1.3.1中的错误在InternetExplorer中,它实际上是在执行内部代码之前等待所有映像加载$function() { }..因此,如果您使用该平台,您将得到我正在寻找的行为,而不是上面描述的正确行为。


catspeake
浏览 566回答 3
3回答

眼眸繁星

对于jQuery,您可以使用$(document).ready()当多姆被装载并且$(window).on("load", handler)在加载所有其他内容(如图像)时执行某些操作。这种差异可以在以下完整的HTML文件中看到,只要您有jollyrogerJPEG文件(或其他适当的文件):<html>&nbsp;&nbsp;&nbsp;&nbsp;<head>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<script&nbsp;src="jquery-1.7.1.js"></script>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<script&nbsp;type="text/javascript">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;$(document).ready(function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert&nbsp;("done");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</script>&nbsp;&nbsp;&nbsp;&nbsp;</head><body>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hello &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img&nbsp;src="jollyroger00.jpg">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img&nbsp;src="jollyroger01.jpg">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;:&nbsp;100&nbsp;copies&nbsp;of&nbsp;this &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img&nbsp;src="jollyroger99.jpg">&nbsp;&nbsp;&nbsp;&nbsp;</body></html>这样,在加载图像之前就会出现警告框,因为DOM已经准备好了。如果你改变了:$(document).ready(function()&nbsp;{转入:$(window).on("load",&nbsp;function()&nbsp;{那么警报框直到后图像被加载了。因此,要等到整个页面准备就绪,可以使用以下内容:$(window).on("load",&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;weave&nbsp;your&nbsp;magic&nbsp;here.});

猛跑小猪

我编写了一个插件,它可以在图像加载元素时触发回调,或者在每次加载图像时触发一次。它类似于$(window).load(function() { .. }),但它允许您定义要检查的任何选择器。如果你只想知道什么时候所有的图像#content(例如)已经加载了,这是你的插件。它还支持加载css中引用的图像,如background-image,&nbsp;list-style-image等等待格式图片jQuery插件GitHub储存库.自述.生产源.发展源.示例用法$('selector').waitForImages(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;alert('All&nbsp;images&nbsp;are&nbsp;loaded.');});关于jsFiddle的示例.更多的文档可以在GitHub页面上找到。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery