2013-02-07 43 views
4

當我的頁面刷新時,我希望能夠回到用戶最後一次使用的選項卡。當前的api文檔不再提及cookies來做標籤選擇了。現在如何用cookies來做到這一點?如何使用當前版本的jquery ui記住活動選項卡

<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title>jQuery UI Tabs - Default functionality</title> 
     <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" /> 
     <script src="http://code.jquery.com/jquery-1.8.3.js"></script> 
     <script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script> 
     <link rel="stylesheet" href="/resources/demos/style.css" /> 
     <script> 
      $(function() { 
       $("#tabs").tabs(); 
      }); 
     </script> 
    </head> 
    <body> 
     <div id="tabs"> 
      <ul> 
       <li><a href="#tabs-1">Nunc tincidunt</a></li> 
       <li><a href="#tabs-2">Proin dolor</a></li> 
       <li><a href="#tabs-3">Aenean lacinia</a></li> 
      </ul> 
      <div id="tabs-1"> 
       <p>Tab 1 text</p> 
      </div> 
      <div id="tabs-2"> 
       <p>Tab 2 text</p> 
      </div> 
      <div id="tabs-3"> 
       <p>Tab 3 text</p> 
      </div> 
     </div> 
    </body> 
</html> 
+2

你有幾個選擇。您可以使用cookie,會話,歷史api,本地存儲或會話存儲。所有這些都是解決方案,通常用於彼此禁令。 – Ohgodwhy

+0

您也可以使用可以深入鏈接到標籤的散列。 –

+0

看到我的相關問題http://stackoverflow.com/a/18576231/268351 – Jeff

回答

6

所以這是我想出了。當用戶激活選項卡時,cookie將被設置爲選定選項卡的索引。當標籤小部件初始化時,從cookie中讀取值並加載。即使cookie不存在,這似乎仍然有效,並且只會加載cookie存在時用戶最後選擇的選項卡。

$("#tabs").tabs({ 
    activate: function(event, ui) { 
     $.cookie("tabs_selected", $("#tabs").tabs("option","active")); 
    }, 
    active: $("#tabs").tabs({ active: $.cookie("tabs_selected") }) 
}); 
+0

jQuery UI的1.9和沒有工作的答案.....怎麼相信你是它是正確的? – takacsot

+0

它不適用於我 – May

+0

請確保您已添加jquery cookie插件。 –

0
$("#tabs").tabs({ cookie: { expires: 30} }); 
+1

謝謝,但cookie的選項被棄用jQuery UI的1.9 –

0

您可以編輯jQuery的ui.js文件

  1. 打開文件
  2. 搜索this.anchors.bind("click.tabs",function(){return!1})}
  3. 更換this.anchors.bind("click.tabs",function(){})}

刷新頁面 ,這一切都右

相關問題