动态创建按钮的id未定义

时间:2015-04-23 03:03:54

标签: jquery

我有一些动态创建的按钮:

<input type='button' id='remove_"+ii+"' class='removeItem' value='remove'>

ii的价值无关紧要。

我正在尝试聆听任何这些按钮被点击并执行某些操作:

$(document).on('click',$('.removeItem'),function(){
    alert($(this).attr('id'));
});

然而,警报正在给我&#34; undefined&#34;。至少我希望看到&#34;删除_&#34; ..

我错过了什么?

1 个答案:

答案 0 :(得分:2)

我认为问题在于您注册事件处理程序的方式。在您尝试使用事件委派时,您将传递jQuery对象作为第二个参数。

对于事件委托,您需要将字符串选择器作为第二个参数传递给.on()

$(document).on('click', '.removeItem',function(){
    alert($(this).attr('id'));
});

演示:Fiddle

为什么?
因为on()方法允许传递一个对象作为其参数,它将被传递给event.data属性中的处理程序,所以你的处理程序而不是使用事件委托给{{1}添加一个处理程序将事件数据作为jQuery对象的对象。所以处理程序中的document指的是this没有document属性的对象

演示:Fiddle