jQuery Tablesorter寻呼机插件& Ajax更新

时间:2011-05-23 08:14:55

标签: jquery tablesorter pager

我有一个tableorter表,目前工作正常,使用ajax方法更新表数据。我已经添加了tablesorter Pager插件,现在又添加了

$(.tablesorter').trigger("update");

更新表时的

功能,不会更新仍显示上一行/页数的寻呼机。

我正在使用:

    //init tablesorter
    $('#tblCustomers').tablesorter({
            headers: { 0: { sorter: false}},
            sortList: [[5,1]]               
    }).tablesorterPager({container: $("#pager")});
    //search listener
    $('input.search').change(function() {
                 $.post('search.php', { 'keyword' : $(this).val() }, function(data) {
                        $('#tblCustomers tbody').html(data);
                        $('#tblCustomers').trigger('update');
                 }
    });

建议请...

3 个答案:

答案 0 :(得分:2)

danielc的答案几乎完美无缺,但寻呼机会跳过页面。我用另一个我找到的答案解决了这个问题,这就是我提出的问题:

function tableUpdated() {
$('#pager *').unbind('click');
$("#table") 
.tablesorter({
    // zebra coloring
    widgets: ['zebra']
}) 
.tablesorterPager({container: $("#pager")}); 
}

希望这有帮助,快乐编码!

答案 1 :(得分:0)

  1. 确保在更新数据库表后刷新容器
  2. 请注意缓存,我会在search.php(例如search.php?cachebuster = arandomnumberhere)中添加一个随机查询字符串,以确保阻止页面缓存。
  3. 有多种方法可以控制缓存。你可以在服务器上设置它,通过htaccess,之前提到的随机数等等。

答案 2 :(得分:0)

function tableUpdated() {
    $('#tblCustomers').tablesorter({
        headers: { 0: { sorter: false}},
        sortList: [[5,1]]               
    }).tablesorterPager({container: $("#pager"), positionFixed: false});
}   

$(document).ready(function() {
   $('input.search').change(function() {
      $.post('search.php', { 'data': data } , function(data) {
        tableUpdated();
      });
   });  

事实证明,解决方案是将表初始化移动到一个单独的函数中,并在$ .post的成功部分内调用

在阅读谷歌搜索结果数小时后,这是我唯一有效的方法。