1

これに関する参考文献が見つからず、さまざまなアプローチが見られます。プロジェクトでjqueryを使用している場合、関数を定義するために「特別な」構文を使用する必要があると誰かが私に言いました。

彼が私に言ったことは次のとおりです。

$.functionName = function (var1, var2){
       //your code
};

そして、次のように使用します。

$.functionName("Test", "Test");

しかしその後、jQuery を使用するときに関数を定義するためのガイドラインまたはベスト プラクティスを探しに行きました。そして、これを見つけました:jquery4u.com

上記の例は、おそらく「カスタム」名前空間を持つ関数だと思いますか? わからない。

とにかく、私の質問は次のとおりです。jQueryを使用しているときに関数を定義するためのガイドライン/ベストプラクティスはありますか? (そして(欠点)利点は何ですか)

どうもありがとう!

4

3 に答える 3

4

プロジェクトで jQuery を使用することは、プロジェクトで使用する Javascript に関するすべてを変更する必要があるという意味ではありません。jQuery はライブラリであり、フレームワークではありません。

通常の関数は、通常の方法で定義する必要があります。

function functionName(var1, var2){
  //your code
};

グローバル スコープをできるだけクリーンに保つために関数をオブジェクトに配置することを検討するかもしれませんが、すべての関数を使用して jQuery オブジェクトに配置$.functionName=...することは、それらをグローバル スコープに配置することに勝るものはありません。

于 2012-12-10T10:49:26.933 に答える
1

定義関数は jQuery を使用するために必須ではありません。古い方法で関数を定義するだけです。

function myCoolFunc() {
    // your code here
}

さて、jQuery は単なるオブジェクト (という名前$) です。

var myObj = {}
myObj.myCoolFunc = function() {
    //your code here
}
myObj.myCoolFunc();

またはこれがある場合:

// include jQuery <script ...
$.myCoolFunc = function() {
    // your code here
}
$.myCoolFunc();

は同じです..唯一の違いは、最初のケースではオブジェクトmyCoolFuncのプロパティとしてmyObj、2 番目のケースでmyCoolFuncは jQuery オブジェクト ($またはjQuery) のプロパティであることです。

とは$.fn?

$.fnjquery オブジェクトのプロトタイプです。

これを行うには:

$.fn.myCoolFunc = function() {
    // your code here
}

以前のケースと同じではありません。この場合、jquery インスタンスの public メソッドを宣言します。これを呼び出すには、次のことを行う必要があります。

$('div').myCoolFunc();
// and not $.myCoolFunc();

この場合、関数は DOM の各 div に対して呼び出されます。this関数内には、DOM の要素であるスコープ ( ) があります。

最後に、場合によっては、jQuery オブジェクト (名前空間のように) 内に関数を挿入することに意味があるかもしれません。DOM の要素を操作する関数が必要な場合は、$.fn.myFunc(ベスト プラクティスとして) を使用する必要があります。それ以外の場合は、関数をグローバル スコープ (またはカプセル化する他のオブジェクト) に配置する方が高速で論理的です。

于 2012-12-10T12:17:34.373 に答える
0

心配しないで、まだ集中してください....

あなたの関数の書き方は正しいです... $orjQueryはページがロードされたときに宣言された変数であるため.... 彼は特別な構文について教えていると思います...

特別な構文は次のとおりです。

(function($) {
    $.functionName = function (var1, var2){
    //your code
    };
})(jQuery);

この関数がjqueryプラグインであるかどうかを確認するための上記のコード

$.functionName = function (var1, var2){
   //your code
};

上記のコードは、セレクターなしで関数を定義しており、

$.fn.functionName = function (var1, var2){
   //your code
};

セレクターを含めるため

それが役立つことを願っています

于 2012-12-10T10:55:39.870 に答える