1

.on()在 jQuery 1.7.2 中使用绑定事件的委托功能,当然上下文this是委托选择器,而不是触发事件的元素。我需要this从被点击的元素访问。我知道我可以使用委托(父)选择器来搜索它this,但必须有一种更简洁的方法。

$('#wrap').on('click', 'button', function(){
    console.log($(this)) //returns #wrap, not button
});

澄清

问题是我将 jQuery 对象作为第二个参数传递,请参见示例

http://jsfiddle.net/RobertSheaO/yVbZe/

4

1 回答 1

2

您的小提琴与问题不同,并且差异很大。在小提琴中你写道:

var wrap  =  jQuery('#wrap'),
    removeButton = jQuery('button');

wrap.on('click', removeButton, function(){    
    console.log(jQuery(this));
});

问题是这removeButton是一个空的 jQuery 集合,因为执行该分配时该按钮不存在。

当委托.on()给动态添加的元素时,您必须提供一个字符串作为选择器参数。

于 2013-07-19T20:49:31.580 回答