2010-10-28 136 views
0

基本上是單擊按鈕生成表格行,然後單擊減號按鈕刪除行。jquery刪除表格行不起作用

我已經嘗試了下面的幾種方法,它沒有工作。 -.bind -.live - 正常方式

現在看來似乎不是由於是動態生成的表工作。

<script language="JavaScript" src="jquery-1.4.3.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 

$(document).ready(function() {  

    var html = ''; 
    var rows= 5; 
    var cols= 4; 

    $('#btnGenTable').bind("click", function() { 

    for (var r = 1; r <= rows; r++) 
    { 
    html += '<tr>'; 

    for (var c = 1; c <= cols; c++) 
    { 
    cellText= "row " + r + " col " + c; 
    html += '<td>aa</td>'; 
    } 

    html+= '<td><img class="delete" src="minus.jpg" /></td>'; 

    html += '</tr>'; 
    }; 


    $('.inner').html('').append(html); 

    }); 


$('table tbody tr td img.delete').click(function(){ 
    alert('clicked'); 
     $(this).parent().parent().remove(); 
}); 

}); 

</script> 

<br /> 


<table id="tblsize" class="inner" border="1" width="80%"> 
</table> 


<input type=button value="Generate Table" name="btnGenTable" id="btnGenTable" class=text100> 
+0

適合我。確保你把你的屬性http://jsbin.com/iqini3/edit – pixeline 2010-10-28 11:01:38

+0

附加在你的函數中添加一個警告框,並檢查警報框是否到達。 – kbvishnu 2010-10-28 11:02:15

+0

$('table tbody tr td img.delete') .click作爲動態表運行時不工作,如果作爲靜態預存表運行,它將工作。任何想法? – 2010-10-28 15:35:43

回答

2

要單擊圖像時刪除行,請在$(document).ready塊中插入以下代碼。

$('img.delete').live('click', function() { 
    $(this).parent().parent().remove(); 
}); 
1

所有你需要的是:

$('.delete').live('click', function(){ 
      $(this).closest('tr').remove(); 
     }); 
在文檔準備好處理程序

這裏有一個工作示例: http://jsfiddle.net/5bWcT/

+0

jsfiddle.net是一個很好的工具 – 2010-10-29 02:38:41

+0

是的,它非常方便。 – Patricia 2010-10-29 12:50:16

1

我知道這個問題是舊的,但我有同樣的問題。 live()方法自從jQuery 1.7版開始已經被棄用,並且將在版本1.9中被移除。你可以用這個代替:

$(document).on('click', '.delete', function(){ 
    $(this).closest('tr').remove(); 
});