2016-11-11 33 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。儘管我沒有在其他文章中發佈這個答案。保留它作爲評論。 :) –