我在jQuery插件(http://osvaldas.info/examples/image-lightbox-responsive-touch-friendly/imagelightbox.js)中看到了这个代码,它说明它预装了灯箱中的下一个图像。
if( options.preloadNext )
{
var nextTarget = targets.eq( targets.index( target ) + 1 );
if( !nextTarget.length ) nextTarget = targets.eq( 0 );
$( '<img />' ).attr( 'src', nextTarget.attr( 'href' ) ).load();
}
我从未见过没有任何参数的.load()。根据jQuery源代码,如果url参数为空,则执行apply(ths,arguments)。但是,既然没有参数,那么.load()在这个实例中做了什么?这不足以告诉浏览器尝试预加载图像吗?
$( '<img />' ).attr( 'src', nextTarget.attr( 'href' ) )
答案 0 :(得分:3)
load()
方法已超载;它既是a function to load a resource into an element(通过AJAX),也是元素上的a deprecated way to set/fire the "load" event handler。
在这个的情况下,正在使用event-handler-load-of-load,并且所有代码正在执行triggering the "load" event on the <img />
element(无论图像是否实际已加载)。
...是的,只需设置src
属性就可以了,让浏览器完成剩下的工作。