jQuery使用ajax标记cookie持久性

时间:2012-03-02 21:22:31

标签: jquery jquery-ui

我有两组标签,一组嵌套在另一组内。嵌套选项卡由setInterval重新加载,刷新所有内容。在页面加载时,这些嵌套选项卡的cookie设置正常,但一旦刷新发生,它就会消失,选定的选项卡会跳回到第一个。以下是它的外观图像:http://screencast.com/t/nAZlNXIBe 因此,当我在Assigned选项卡下,并单击Normal选项卡时,我希望当setInterval启动并刷新这些选项卡时,它将保留在Normal选项卡上。这是我正在使用的代码:

var $tabs2  = $('#nested').tabs({ cookie: { expires: 1, name: "nested_tabs" } });
setInterval(function() {
  $('#tabs-1 .content').load('/dashboard/mine'); 
}, 30000);

此代码基本上只设置选项卡和cookie,然后刷新恰好填充整个区域,包括选项卡。是否会因为ajax重新加载标签而破坏?

2 个答案:

答案 0 :(得分:1)

您的Cookie将在1毫秒后到期,然后更改。

如果你还没有这样做,你可能需要加载cookie plugin,它就在你的jquery-ui文件之前。

你可以尝试:

var $tabs2  = $('#nested').tabs({ cookie: { expires: 30000, name: "nested_tabs" } });
 setInterval(function() {     
         $.ajax({   url: '/dashboard/mine',   success: function(html){
            $tabs2.tabs("destroy");
            $('#tabs-1 .content').html(html);
            $tabs2  = $('#nested').tabs({ cookie: { expires: 30000, name: "nested_tabs" } });   }          
         });  
    }, 30000);

但我怀疑破坏重新加载并每30秒重建一次标签对cpu / bandwidth / ux有好处...

答案 1 :(得分:0)

好的我明白了,这是代码:

var $tabs2  = $('#nested').tabs();
$tabs2.bind('tabsselect', function(event, ui) {
  $.cookie('nested_tabs', ui.index);
});
setInterval(function(){
  $.ajax({   url: '/dashboard/mine',   success: function(html){
    $tabs2.tabs("destroy");
    $('#tabs-1 .content').html(html);
    $tabs2  = $('#nested').tabs({ selected: $.cookie('nested_tabs') });
    $tabs2.bind('tabsselect', function(event, ui) {
      $.cookie('nested_tabs', ui.index);
    });  
  }          
});