0
var $content    = $('#SomeDivContainingTwoImages');
$content.children().each(function(i){
    $(this).showImage = showImageStatic;
    $(this).showImage();
});

戻り値

Uncaught TypeError: Object #<Object> has no method 'showImage' 

実行時。これは、jquery の各イテレータの外で機能します。つまり、単一の要素に適用するだけの場合です。調子はどう?

4

3 に答える 3

4

$(this) を呼び出すたびに jQuery オブジェクトを再作成しています。

これはうまくいくはずです:

$content.children().each(function(i) {
    var $this = $(this);
    $this.showImage = showImageStatic;
    $this.showImage();
});

しかし、それはそれを処理するための非常に良い方法ではないと思います。showImageStatic() を直接呼び出すことができます。

showImageStatic.call($(this));
于 2012-07-01T15:21:44.800 に答える
3

$(this)毎回新しいインスタンスを作成します。
2 番目$(this)には、最初のメソッドに追加したメソッドがありません。

于 2012-07-01T15:21:36.597 に答える
0

それは関数を追加する正しい方法ではないと思います。そうするべきです

$.fn.extend({ "showImage" : showImageStatic });

showImage() を適切に呼び出すことができるはずです。

于 2012-07-01T15:18:43.450 に答える