2012-02-17 80 views
3

我正在使用jQuery Tablesorter插件,它工作正常。但是有一個問題。想象一下,你有一些排序順序,但你想生活的頁面,並很快回來。不幸的是,當你回來時,你會得到初始的排序順序,這是錯誤的。所以我試圖找到一個線索如何在某些變量中保存Tablesorter的狀態(記住離開頁面時的排序選擇),並在php中使用_GET通過URL傳遞它。任何想法和幫助將不勝感激。jQuery Tablesorter插件 - 如何保存離開頁面時的狀態

我做了一些研究,發現了以下工作:
1.You可以讀取當前sortlis

 <script> 
    $(window).unload(function() { 
    var sortList; 
    $(table).tablesorter().bind("sortEnd", function(sorter) 
    {  
     sortList = sorter.target.config.sortList; 
     $_GET['sortList'] = sortList; 
    }); 
    } 
    ); 
    </script> 

2.I've試圖挽救sortlist中的像上面讀它時,頁面加載:

<script> 
$(document).ready(function() 
    { 
     sortList=$_GET['sortList']; 
     $.tablesorter.defaults.widgets = ['zebra']; 
     $.tablesorter.defaults.sortList = [[1,0]]; 
     $("table").tablesorter(); 
    } 
);  
</script> 
  1. 不行的話,我覺得這兩條線是有疑問的:

    sort32 = $ _ GET ['sortList']; ... $ _GET ['sortList'] = sortList;

我在這裏混合語言JavaScript與PHP和數據類型。但我不是一個專業的程序員,我不能連接點。任何幫助?

亞歷

回答

7

我有tablesorter插件在github上的叉子和我寫了一個名爲「saveSort」(demo),其存儲最後排序到localStorage的瀏覽器是否有HTML5或成餅乾作爲備用部件。

+0

fudgey,非常感謝!你是男人。正如我所想的那樣完美無瑕。祝你好運! – user985456 2012-02-20 14:52:59

+0

太棒了。我只需要包含最新的tablesorter js和tablesorter小部件js,並將'widgets:[「saveSort」]' – 2017-03-01 07:58:19

0

取決於你如何編碼的頁面,一些瀏覽器會自動記憶最後的狀態是什麼。不過,它不會,尤其是在舊版瀏覽器上。

基本的跨瀏覽器解決方案是將狀態信息存儲在window.location.hash對象中。換句話說,對於任何事件或要記住狀態,你改變了哈希的唯一標識符:

window.location.hash = 'column1' 

這增加#clicked-button到您的網址的結尾。您希望在用戶對錶格進行排序時調用它。儘管如此,這本身並不會做任何事。第二步是監聽散列的更改。 IE有onhashchange事件,但我不認爲其他瀏覽器支持該事件。另一種方法是設置一個間隔來手動收聽。

var last_hash = ''; 
setInterval(function() 
{ 
    if(window.location.hash != last_hash) 
    { 
     //a new event happened, change the state of the page 
     last_hash = window.location.hash; 

     if(last_hash == 'column1') 
     { 
      //sort based on column1 
     } 
     else if(last_hash == 'column2') 
     { 
      //sort based on column2 
     } 
     //etc 
    } 
}, 500); 

這樣的腳本將繼續運行,即使用戶導航離開頁面然後返回。

你也可以閱讀這些關於其他技術的更多信息。

1

試試這個庫jQuery Address在使用window.location.hash對象的解決方案工作。我目前在一個項目中使用它,並且工作正常。

相關問題