2016-11-11 32 views
-2

我有一个table如何获得点击事件上一个新创建的行与jQuery

<table id="myTable" style="cursor :pointer;"> 
<tr> 
    <td>col 1</td><td>col2</td> 
</tr> 
<tr> 
    <td>field</td><td>Field 2</td> 
</tr> 
<tr> 
    <td>another field</td><td>one more field</td> 
</tr> 
</table> 

,当我在row点击此代码添加一个新的row

$("#myTable tr").click(function(){ 
    $(this).addClass('selected').siblings().removeClass('selected'); 
    var value=$(this).find('td:eq(1)').html(); 
    if (value) { 
    alert('adding New Row !') 
    $('#myTable').find('tbody:last').append('<tr><td>new Field</td><td>New Field</td></tr>'); 
    } 
}); 

JSFiddle Demo

但现在当我点击新创建的row什么都没有附加。 为什么还有其他row未创建?

有没有办法做到这一点?

回答

7

使用event delegation代替:

$("#myTable").on('click','tr',function() {}); 
+6

100点,在5分钟内对两个问题相同的答案:) –

+0

@RoryMcCrossan:OMG。没有期待7(纪念时7)upvotes为此:P。尽管我没有在其他文章中发布这个答案。保留它作为评论。 :) –