0

我有一个包含多个表的 div。每个表都有一个删除按钮,该按钮调用一个函数来删除表。表格也可以按日期升序/降序排序。删除功能将起作用,但如果表已排序,则不起作用。

JSFiddle 演示在这里

删除按钮看起来像这样。

 <button id="6" class="delete">X</button>

该函数有一个“删除”类的单击事件侦听器。我目前仅使用警报显示 id 以进行调试。

$(".delete").click(function () {
    alert($(this).attr("id"));
});

我怀疑它在排序后不起作用的原因是因为它使用$(this)选择器获取 ID 属性,而这在排序后不够具体。

我尝试了各种方法将表 ID 传递给删除函数,但没有一种方法可以工作。

4

3 回答 3

3

您在排序时重新附加内容,使.delete元素动态化,为此您需要一个委托事件处理程序:

$("#meetingTable").on('click', ".delete", function () {
    alert(this.id);
});

小提琴

于 2013-04-08T15:44:23.840 回答
0

在此行之后的按钮排序函数中添加一个额外的副本或回调到您的删除函数

    sortUsingNestedText($('#meetingTable'), "table", $(this).data("sortKey"));

我测试了它的工作原理。

于 2013-04-08T15:48:00.190 回答
-1

尝试改变

$(".delete").click(function () {

$(".delete").on("click", function(){

即使在 DOM 操作之后,这将允许 jQuery 监听该元素的点击

于 2013-04-08T15:44:05.337 回答