使用没有参数的jQuery .load()来预加载图像?

时间:2014-04-18 17:01:06

标签: javascript jquery

我在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' ) ) 

1 个答案:

答案 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(无论图像是否实际已加载)。

http://jsfiddle.net/Js8s2/

...是的,只需设置src属性就可以了,让浏览器完成剩下的工作。