我在jQuery 1.7.2中使用.on()
绑定事件的委托功能,当然this
的上下文是委托选择器,而不是触发事件的元素。我需要从被点击的元素中访问this
。我知道我可以使用委托(父)选择器的this
来搜索它,但必须有一个更清洁的方式。
$('#wrap').on('click', 'button', function(){
console.log($(this)) //returns #wrap, not button
});
问题是我传递了一个jQuery对象作为第二个参数,参见示例
答案 0 :(得分:2)
你的小提琴与问题不同,这种差异很大。在你写的小提琴中:
var wrap = jQuery('#wrap'),
removeButton = jQuery('button');
wrap.on('click', removeButton, function(){
console.log(jQuery(this));
});
问题是removeButton
是一个空的jQuery集合,因为执行该赋值时该按钮不存在。
将.on()
委托给动态添加的元素时,必须提供一个字符串作为选择器参数。