jQuery fn等价

时间:2013-09-10 16:34:44

标签: javascript jquery

我有以下代码:

var products = [];
    $('.mCSB_container').children('li').each(function () {
        products.push($(this).data("full-image"));
    });

$.fn.preload = function() {
    this.each(function(){
        $('<img/>')[0].src = this;
    });
}

$(products).preload();

这个预加载功能有什么作用?它是否遍历产品数组然后将src设置为此?但是在这种情况下是什么..如果不使用$ .fn

,这个函数的等价物是什么

2 个答案:

答案 0 :(得分:2)

$(products).preload();$(products) jQuery对象中的每个项调用preload方法。它将页面中新创建的图像对象的.src属性设置为products数组中的每个字符串。我猜这是尝试让浏览器在需要其他用途之前预先加载图像。

您可能会发现使用预载功能更简单,更清晰,如本文所述:How do you cache an image in Javascript

如果未调用.preload(),则图片将在页面稍后或稍后在javascript中需要时加载。预加载的目的是将图像放入浏览器的缓存中,这样就不必在下次需要时通过互联网加载它们。

赋值$.fn.preload = function() {...}只是将.preload()方法定义为所有未来jQuery对象的方法。在jQuery fn就像是在向jQuery对象的.prototype进行协助。

答案 1 :(得分:1)

不使用preload功能,您可以这样做:

products.forEach(function(src) {
   var img = document.createElement("img");
   img.src = src;
});

使用$.fn只是添加到jQuery函数/对象创建的对象可用的函数的一种方法