0

次のコードがあります。

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 を使用せずにこの関数に相当するものは何ですか?

4

2 に答える 2

2

$(products).preload();$(products)jQuery オブジェクトの各項目に対して preload メソッドを呼び出します。.srcページ内で新しく作成された画像オブジェクトの属性を、products配列内の各文字列に設定します。他の用途で必要になる前に、ブラウザに画像をプリロードさせようとする試みだと思います。

この投稿で説明されているように、プリロード関数を使用する方が簡単でわかりやすい場合があります: How do you cache an image in Javascript .

が呼び出されない場合.preload()、ページの後半または JavaScript の後半で画像が必要になったときに、画像の読み込みに時間がかかります。プリロードの目的は、画像をブラウザのキャッシュに入れることで、次に画像が必要になったときにインターネット経由で画像をロードする必要がないようにすることです。

割り当ては、メソッドを将来のすべての jQuery オブジェクトのメソッドとして$.fn.preload = function() {...}定義するだけです。.preload()jQueryでは、jQuery オブジェクトのfnへの割り当てに似ています。.prototype

于 2013-09-10T16:37:54.237 に答える