2010-03-28 72 views
1

我發現在互聯網上驗證碼:的JQuery的tablesorter memorizeSortOrder部件

$.tablesorter.addWidget({ 
id: "memorizeSortOrder", 

format: function(table) { 

if (!table.config.widgetMemorizeSortOrder.isBinded) { // only bind if not already binded 
    table.config.widgetMemorizeSortOrder.isBinded = true; 
    $("thead th:visible",table).click(function() { 
    var i = $("thead th:visible",table).index(this); 
    $.get(table.config.widgetMemorizeSortOrder.url+i+'|'+table.config.headerList[i].order); 
     }); 
    } // fi 
    } 
}); 

發現:http://www.adspeed.org/2008/10/jquery-extend-tablesorter-plugin.html

我想記住我的AJAX表的排序等各個更新(表更改完全沒有追加),它保持原樣。

問題是..怎麼可以用這個?

$("#tablediv").load(
      "table.php", 
      null, 
      function (responseText, textStatus, req) { 
      $("#table").trigger("update"); 


      } 
     ); 

我需要做什麼改變?

+1

我剛剛更新了我的[的tablesorter(HTTPS的叉: //github.com/Mottie/tablesorter)與一個名爲'saveSort'的新小部件一起使用,該小部件將最後一次存儲到本地存儲中,並使用cookie後備。查看[demo](http://mottie.github.com/tablesorter/docs/example-widget-savesort.html)。 – Mottie 2012-02-01 05:25:33

回答

1

如果一個表有沒有身體行應用排序列表將打破,所以最終的測試將變成:

if(sortList.length > 0 && table.tBodies[0].rows.length)

3

another plugin這樣做。它也使用cookie,因此這些排序在頁面加載時保持不變。鏈接的版本需要jQuery Cookie和JSON插件。

我修改了我的副本,使用Crockford的JSON2腳本代替jQuery JSON插件。

$(document).ready(function() { 
    $.tablesorter.addWidget({ 
    // give the widget an id 
    id: "sortPersist", 
    // format is called in the on init and when a sorting has finished 
    format: function(table) { 

     // Cookie info 
     var cookieName = 'application_name_tablesorts'; 
     var cookie = $.cookie(cookieName); 
     var options = {path: '/'}; 

     var data = {}; 
     var sortList = table.config.sortList; 
     var tableId = $(table).attr('id'); 
     var cookieExists = (typeof(cookie) != "undefined" && cookie != null); 

     // If the existing sortList isn't empty, set it into the cookie and get out 
     if (sortList.length > 0) { 
     if (cookieExists) { 
      data = JSON.parse(cookie); 
     } 
     data[tableId] = sortList; 
     $.cookie(cookieName, JSON.stringify(data), options); 
     } 

     // Otherwise... 
     else { 
     if (cookieExists) { 

      // Get the cookie data 
      var data = JSON.parse($.cookie(cookieName)); 

      // If it exists 
      if (typeof(data[tableId]) != "undefined" && data[tableId] != null) { 

      // Get the list 
      sortList = data[tableId]; 

      // And finally, if the list is NOT empty, trigger the sort with the new list 
      if (sortList.length > 0) { 
       $(table).trigger("sorton", [sortList]); 
      } 
      } 
     } 
     } 
    } 
    }); 
}); 
+0

感謝ran!! :)我一直在尋找這樣的解決方案。 – 2010-09-22 12:10:08