Jquery 如何使用on将当前元素绑定到单击处理程序

Jquery 如何使用on将当前元素绑定到单击处理程序,jquery,Jquery,在jQuery1.9+中,您不再使用live处理程序,因为存在。如果我正在使用on,并且我想绑定单击的按钮,我将如何绑定 目前,这只绑定事件,而不是我在函数中需要的元素 var like = function(el) { //var el = $("#like"); (to avoid this) $(el).parent().hide(); }; $("#like").on('click', like); 在处理程序中使用此上下文,该处理程序是生成事件的元素 var lik

在jQuery1.9+中,您不再使用live处理程序,因为存在。如果我正在使用on,并且我想绑定单击的按钮,我将如何绑定

目前,这只绑定事件,而不是我在函数中需要的元素

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

$("#like").on('click', like);
在处理程序中使用此上下文,该处理程序是生成事件的元素

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

$("#like").on('click', like);
在处理程序中使用此上下文,该处理程序是生成事件的元素

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

$("#like").on('click', like);
el是一个对象

el.target是触发单击的目标

这是对该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();
}
el是一个对象

el.target是触发单击的目标

这是对该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();
}

感谢您的精彩解释。el是一个jQuery.Event对象。它是一个事件对象,而不是Jquery.eventObject@Sushanth-我确信它是一个jQuery.Event对象。只要回调与jQuery事件处理程序一起使用。jQuery将创建一个jQuery.Event对象并将其作为第一个参数传递,然后将DOM元素设置为事件调用的上下文。@Sushanth-你说得对。没有jQuery.Event对象这样的东西。有一个名为jQuery.Event的工厂方法,但我找不到任何定义为jQuery.Event的方法。感谢您的精彩解释。el是一个jQuery.Event对象。它是一个事件对象,而不是Jquery.eventObject@Sushanth-我确信它是一个jQuery.Event对象。只要回调与jQuery事件处理程序一起使用。jQuery将创建一个jQuery.Event对象并将其作为第一个参数传递,然后将DOM元素设置为事件调用的上下文。@Sushanth-你说得对。没有jQuery.Event对象这样的东西。有一个名为jQuery.Event的工厂方法,但我找不到任何定义为jQuery.Event的方法