2

jQuery 1.9 以降では、"on" が存在するため、ライブ ハンドラーを使用しなくなりました。on を使用していて、クリックした「ボタン」をバインドしたい場合、どうすればよいですか?

現在、これはイベントのみをバインドします(関数で必要な要素ではありません)

var like = function(el) {
    //var el = $("#like"); (to avoid this)
    $(el).parent().hide();
};

$("#like").on('click', like);
4

2 に答える 2

3

elイベントオブジェクトオブジェクトです。

el.targetクリックをトリガーしたDOM 要素です。

thisそのDOM要素への事前構成された参照です。

$(this)その参照を jQuery 参照に変換します。

だからあなたはこのように行くことができます

var like = function(el) {
     console.log(el); // outputs event object object
     console.log(el.target); // outputs DOM element
     console.log(this); // should output the same as el.target
     console.log($(this)); // outputs jQuery object of that DOM element

     // the code can be
     $(this).parent().hide();
     // or
     $(el.target).parent().hide();
}
于 2013-08-10T22:47:55.120 に答える
1

thisイベントを生成した要素であるハンドラー内でコンテキストを使用します。

var like = function() {
    $(this).parent().hide();
};

$("#like").on('click', like);
于 2013-08-10T22:40:12.573 に答える