使用jquery

时间:2017-07-26 00:37:57

标签: jquery tablesorter

我试图解决为什么只有在使用tablesorter函数时才删除行的原因。这是有问题的页面:

http://www.ffxiv-gathering.com/40.php

要复制错误,请执行以下操作:

  1. 单击未受污染的选项卡上的任何行
  2. 转到“观看”标签
  3. 点击该行将其删除
  4. 转到未受污染的标签,然后点击一行...然后点击另一个
  5. 转到“观看”标签
  6. 您可以看到最初点击的第一行是重复的。我不能为我的生活找出原因。删除tablesorter函数可以解决问题...但是,我希望保持这种状态,因为它按状态对表进行排序(从而将当前和即将到来的节点移到顶部)。

    这是运行此命令的jquery:

    $(document).ready(function() {
    var items = [];
    
    $("#myTable-unspoiled >tbody >tr").on("click", function() {
        var newTr = $(this).closest("tr").clone().addClass("remove");
    
        items.push(newTr);
        newTr.appendTo($("#myTable-watching"));
    
        $(".remove").click(function(){
        $(this).closest('tr').remove();
    
        var rowCount = $('#myTable-watching >tbody >tr').length;
        $('#counter').html(rowCount);
        });
    
        var rowCount = $('#myTable-watching >tbody >tr').length;
        $('#counter').html(rowCount);
    
        $("#myTable-watching").tablesorter({ 
        // sort status column, then item; ascending
        sortList: [[6,0],[0,0]]
        });
    });
    });
    

    删除此项可修复问题,但阻止我排序:

    $("#myTable-watching").tablesorter({ 
        // sort status column, then item; ascending
        sortList: [[6,0],[0,0]]
    });
    

    这是一个没有tablesorter插件的页面。

    http://www.ffxiv-gathering.com/40-test.php

    要查看我的问题...单击彩色行,然后单击白色行,再单击另一个彩色行并查看“观察”选项卡。

1 个答案:

答案 0 :(得分:0)

当您从表中添加和/或删除行时,请确保触发"更新"而不是重新初始化tablesorter ......

newTr.appendTo($("#myTable-watching"));
$("#myTable-watching").trigger("update");

$(".remove").click(function(){
    var $table = $(this).closest('table');
    $(this).closest('tr').remove();
    $table.trigger('update');
    // ...
});