jQueryで独自のメソッドを作成しました:
$.fn.plop = function(){
// Method
};
そして、次のようなキューでそれを呼び出そうとしています:
$(elems[0]).plop().delay(800).fadeOut();
しかし、Firefox は次のエラーを返します。
TypeError: $(...).plop(...) は未定義です
問題の原因について何か考えはありますか? ありがとう。
チェーン可能にしたい場合は、関数でjQueryを返す必要があります。他に何return $;
もないとしても。
例:
$.fn.plop = function(){
// Method
return this.html('bar'); // html() returns jQuery
};
$('#myDiv').plop().delay(800).fadeOut();
jQuery を適切に拡張するには、次のようにメソッドを記述する必要があります。
$.fn.plop = function () {
return this.each(function () {
// Do something for each element
});
};
これにより、jQuery 要素の任意のコレクションに対して .plop() を実行し、各要素に動作またはアクションを適用できます。元のコレクションが返されるため、追加のメソッド呼び出しを連鎖させることができます。