2


0

引数を使用してライブメソッドを呼び出す方法

jQueryプラグインの書き方を学んでいます。 だから、なぜ私がやっていることをやっているのかは問題ではない。

私はlive2と呼ばれるプラグインを書いていますが、これは内部的にliveメソッドを呼び出すだけです。

(function($) {

    $.fn.live2 = function() {

        /* if there are no elements then just return */
        if (!this.length) return this;

        return this.each(function() {
            var $this = $(this);

      jQuery.fn.live.apply(this, arguments);

        }); // end of return this.each(function())
    }; // end of plugin
})(jQuery);

上記のコードは、任意のライブメソッドでライブで呼び出す必要があります。 ライブの代わりにlive2を使用します。

$('#container').live2('click',function(){
return false;
})

しかし、プラグインは機能していません。 修正がどうあるべきかについての考え。

3 Answer


1


ライブはセレクターでのみ動作するため、

`$( '#something.something')。live(…​)`は動作します

(ドキュメントによると) $(this).live(…​)は動作しないはずです

あなたのプラグインの例はまったく問題ありません。 この2つのことを変更します:1。 これを$ this 2。 それぞれを呼び出した後に戻る

また、ライブは、実験を行うのに適した機能ではありません。 トグルを試してください

このような:

(function($) {

    $.fn.toggle2 = function() {

        /* if there are no elements then just return */
        if (!this.length) return this;

        this.each(function() {
            var $this = $(this);
            $this.toggle(arguments);
        });

        return this;

    }; // end of plugin
})(jQuery);


0


*編集:*これを行う必要があると思います:

$.fn.live2 = function() {
    this.live.apply(this, arguments);
};


0


この行に$がありませんか:

  jQuery.fn.live.apply(this, arguments);

したがって、

  jQuery.fn.live.apply($this, arguments);