0

jQueryで独自のメソッドを作成しました:

$.fn.plop = function(){
    // Method 
};

そして、次のようなキューでそれを呼び出そうとしています:

$(elems[0]).plop().delay(800).fadeOut();

しかし、Firefox は次のエラーを返します。

TypeError: $(...).plop(...) は未定義です

問題の原因について何か考えはありますか? ありがとう。

4

2 に答える 2

1

チェーン可能にしたい場合は、関数でjQueryを返す必要があります。他に何return $;もないとしても。

例:

$.fn.plop = function(){
    // Method
    return this.html('bar'); // html() returns jQuery
};

$('#myDiv').plop().delay(800).fadeOut();

http://jsfiddle.net/mUuhF/

于 2013-03-07T18:22:57.877 に答える
0

jQuery を適切に拡張するには、次のようにメソッドを記述する必要があります。

$.fn.plop = function () {  
    return this.each(function () {

        // Do something for each element

    });
};

これにより、jQuery 要素の任意のコレクションに対して .plop() を実行し、各要素に動作またはアクションを適用できます。元のコレクションが返されるため、追加のメソッド呼び出しを連鎖させることができます。

于 2013-03-07T18:26:22.100 に答える