2012-02-17 81 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对象的解决方案工作。我目前在一个项目中使用它,并且工作正常。

相关问题