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

时间:2013-08-10 22:38:18

标签: jquery

在jQuery 1.9+中,你不再使用实时处理程序,因为“on”存在。如果我正在使用并且我想绑定“按钮”,请点击我该怎么做?

Currenly这只会绑定事件(不是我在函数中需要的元素)

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

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

2 个答案:

答案 0 :(得分:3)

elevent object个对象。

el.target是触发点击的DOM element

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();
}

答案 1 :(得分:1)

在处理程序中使用this上下文,这是生成事件的元素。

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

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