1

jQuery(document).ready(function($){});$をエラーの原因から保護するための既知の優れた方法です。

私が興味を持っているのはjQuery(window).load(function($){});、同じように機能するかどうかです。

基本的に、私が今持っているのは:

jQuery(document).ready(function($){

    $(window).load(function(){
       // ...
    }); 

});

これは私には不必要に思えますが、これを単純化するためのアイデアはありますか?jQueryを$(または正しい用語が何であれ)に適切にマッピングする安全性が必要ですが、タイミングはwindow.load()

4

3 に答える 3

10

私はこれが好きです...

(function($){

    $(window).load(function(){
        //everything is loaded (images, scripts, etc.)
    });

    // and/or

    $(document).ready(function(){
        // the dom is in place, but everything is not necessarily loaded
    });

})(jQuery);

注:これは、このスクリプトの前にjQueryが含まれている場合にのみ機能します。このようにjQueryが未定義であるという問題に遭遇したことはありません。さらに、$を匿名関数に渡すため、$が未定義であるという問題が発生することはありません。

于 2012-05-21T21:57:05.323 に答える
9

あなたはこれを行うことができます:

(function($) {

    $(window).load(function(){
       // ...
    }); 

})(jQuery);

匿名関数は、質問のコードのようにDOMの準備ができるのを待つのではなく、すぐに実行されます。関数内には$への参照があるため、無名関数の外部で定義されているjQuery他の関数と衝突することはありません。$

于 2012-05-21T21:54:56.307 に答える
1

ローカルパラメータを作成できます。

(function($) {
    $(...)
})(jQuery);

このコードは、という名前のパラメーターを使用して無名関数を実行し、パラメーター値として$渡しjQueryます。

于 2012-05-21T21:55:13.200 に答える