插件中的源码并没有定义each和all, 就可以直接用吗

来源:2-4 将无序预加载写成jQuery插件

加咖啡喵

2017-09-18 20:52

var imgObj = new Image();
$(imgObj).on('load error',function () {
    opts.each && opts.each(count);  //检查参数是否存在
    if (count >= len - 1){
        opts.all && opts.all();
    }
    count++;
});
imgObj.src = src;

function load() {
    var imgObj = new Image();
    $(imgObj).on('load, error', function () {
        opts.each && opts.each(count);
        if(count >= len){
            //所有图片加载完成
            opts.all && opts.all();
        } else {
            load();
        }
        count++;
    });
    imgObj.src = imgs[count];


写回答 关注

1回答

  • LenGxy
    2017-09-20 19:06:27

    插件源码中each和all的默认值都是null,所以调用preload()的时候需要传递这两个方法进去,http://img3.mukewang.com/59c24ba50001b1ac10850328.jpg

图片预加载

预知发生的行为,提前加载需要的图片,获得更好的用户体验

40980 学习 · 81 问题

查看课程

相似问题