单击动态创建的表上的函数

时间:2016-01-29 11:46:03

标签: c# jquery asp.net-mvc

我有一个表,它是动态创建的。当我点击图像然后我需要删除表格行。在这里点击功能不起作用。

动态创建表格。

row.append($("<td id="imageclose"><p>" + '<img src="' + '/Content/Images/crossimg.png' + '"  width:"225px" height:"225px" />' + "</p></td>"));

单击“功能”

$("#imgclose").click(function () {
    alert("asdfg");
});

2 个答案:

答案 0 :(得分:2)

使用类imageclose代替id,如下所示。因为id对每个元素都应该是唯一的。

row.append($("<td class="imageclose"><p>" + '<img src="' + '/Content/Images/crossimg.png' + '"  width:"225px" height:"225px" />' + "</p></td>"));

动态生成的元素需要事件delegation

$('body').on('click', '.imgclose img', function () {
    $(this).closest('tr').remove();
});

答案 1 :(得分:1)

您不能使用&#39; ID&#39;因为它应该是独一无二的。因此,而不是使用ID来使用类来完成您的任务。

使用onclick调用函数

第一种方式

row.append($("<td><p>" + '<img src="' + '/Content/Images/crossimg.png' + '"  width:"225px" height:"225px" onclick="abc()" />' + "</p></td>"));

function abc() {
    $(this).closest('tr').remove();
}
使用class属性

第二种方式

row.append($("<td><p>" + '<img class="myclass" src="' + '/Content/Images/crossimg.png' + '"  width:"225px" height:"225px" />' + "</p></td>"));

$('#tableId').on('click', '.myclass', function () {
    $(this).closest('tr').remove();
});