2

在 jQuery 1.9+ 中,您不再使用实时处理程序,因为“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 回答