2010-10-28 89 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(); 
});