我的代码使用jquery动态创建表。我想在表中添加删除功能。因此,当点击删除图像时,该行应该被删除。但是当表是静态的时,删除工作正常。 这是我的代码:
createTable: function () {
var lastRow = $('#TblInvoiceList tr:last');
var newRow = $('<tr>');
newRow.append($('<td>').text($('input.Name').val()), $('<td>').text($('input.GrossAmount').val()));
newRow.append("<td class='center'><img class='ImgDelete' src='image/ButtonDelete.png' /></td>");
lastRow.before(newRow);}
这是删除功能:
$('#TblInvoiceList td img.ImgDelete').click(function () {
alert("hi");
$(this).parent().parent().remove();
});
答案 0 :(得分:2)
尝试将live作为
.live()方法能够影响 尚未添加的元素 通过使用事件到DOM 委派:
$('#TblInvoiceList td img.ImgDelete').live('click',function () {
alert("hi");
$(this).parent().parent().remove();
});
答案 1 :(得分:2)
使用委托比动态添加内容更有效:
$('#TblInvoiceList').delegate('img.ImgDelete', 'click', function(e) {
alert("hi");
$(this).parent().parent().remove();
});