删除/更新表行时tableorterPager的问题

时间:2011-07-07 15:37:04

标签: jquery-plugins jquery tablesorter

我正在尝试使用分页的jquery表分类器。当我动态更新表时,我有问题。单击“#append”按钮(参见代码)后,我正在更改整个表体内容。分页器识别出这个动作,但当我点击下一步时,它会在第一次更新后向前跳两页,在第二次更新后向前跳三页等而不是一页...

我不知道我做错了什么。这是我的代码:

$(document).ready(function() {
      $("#myTable").tablesorter( {sortList: [[0,0], [1,0]]} , {headers: {1: {sorter: false}, 2: {sorter: false}, 3: {sorter: false}, 4: {sorter: false}, 5: {sorter: false}, 6: {sorter: false}, 7: {sorter: false}}})
      .tablesorterPager({container: $("#pager")});
      $("#append").click(function() {
        // add some html
        $.post("log_msg.asp", $("#msgForm").serialize(),
        function(data) {
          $('body').find("#myTable colgroup").remove();
          $("#msgs").html($("#msgs" , data).html());
          //$("#myTable").trigger("update")
          $('body').find("#myTable")
          .tablesorter( { widthFixed: true, widgets: ['zebra']} )
          .tablesorterPager( { container: $("#pager") } );
      });
      // let the plugin know that we made a update
      return false;
    });

}); 

有任何线索吗?

提前致谢 干杯 玛格达

2 个答案:

答案 0 :(得分:1)

我认为该事件多次被附加。你可以尝试这个基本解除绑定事件然后再绑定它的代码。

$(document).ready(function() {
      $("#myTable").tablesorter( {sortList: [[0,0], [1,0]]} , {headers: {1: {sorter: false}, 2: {sorter: false}, 3: {sorter: false}, 4: {sorter: false}, 5: {sorter: false}, 6: {sorter: false}, 7: {sorter: false}}})
      .tablesorterPager({container: $("#pager")});
      $("#append").unbind('click').click(function() {
        // add some html
        $.post("log_msg.asp", $("#msgForm").serialize(),
        function(data) {
          $('body').find("#myTable colgroup").remove();
          $("#msgs").html($("#msgs" , data).html());
          //$("#myTable").trigger("update")
          $('body').find("#myTable")
          .tablesorter( { widthFixed: true, widgets: ['zebra']} )
          .tablesorterPager( { container: $("#pager") } );
      });
      // let the plugin know that we made a update
      return false;
    });

}); 

答案 1 :(得分:0)

我试过这个.. 我打开了jquery.tablesorter.pager.js文件并修改了一下如下.. 在构造函数内部,添加以下两行

 $(config.cssNext,pager).unbind('click');
 $(config.cssPrev,pager).unbind('click');

正好在

之上
$(config.cssFirst,pager).click(function() {
    moveToFirstPage(table);
    return false;
});

这对我有用..希望它也适合你。祝好运! 维诺德