2013-11-01 124 views
1

这里上是代码:http://jsfiddle.net/xcmtD/2/添加元素与类,然后触发点击功能元素

我创建一个动态表,并添加行,我点击一个按钮。其中一个字段有一个“删除”类。

我想使用该字段删除行,如果用户点击它,但它不起作用,我不知道为什么。

HTML:

<table id="table"> 
    <tr><td>Row 1</td><td class='remove'>Row 2</td></tr> 
</table> 

<input type="button" id="button" value="add"> 

的JavaScript(jQuery的):

$("#button").click(function(){ 
    $("#table").append("<tr><td>Added</td><td class='remove'>Remove</td></tr>"); 
}); 

$(".remove").click(function(){ 
    alert("Removed!"); 
}); 

回答

6

这是因为当你做了绑定,该元素尚不存在。

使用代表团,以使选择是动态的点击测试:

$('#table').on('click', '.remove', function(){ 
    alert("Removed!"); 
}); 
+0

我用这个了很多后,它是忽视。它将绑定到表的一个点击处理程序的子选择“.remove”。这种被忽视的过载imo。 – Fallenreaper

+0

谢谢。它工作完美。我想了解更多。有什么建议么? – Memochipan

+1

@Memochipan JQuery的[文档](http://api.jquery.com/on/)清晰,不会太长,可能是一个很好的阅读。 –

0

请务必检查库进行委派。 直到jQuery的1.7.3功能将

$('#table').live('click', '.remove', function(){ 
    alert("Removed!"); 
}); 

$('#table').live('click', '.remove', function(){ 
    alert("Removed!"); 
}); 
+0

您是否在最后一个例子中指“开”? – Memochipan

+0

无论如何你必须检查这个 – user2943601