我用超鏈接和div創建了自己的選項卡。即時通訊將它們放在邊欄內。記住標籤在網站上按下
即時使用jquerys .show()和隱藏()相關的div時單擊超鏈接。
它的工作正常,但是,我希望最後一個鏈接/標籤點擊記住整個網站,因爲用戶導航。
我該怎麼做?
我用超鏈接和div創建了自己的選項卡。即時通訊將它們放在邊欄內。記住標籤在網站上按下
即時使用jquerys .show()和隱藏()相關的div時單擊超鏈接。
它的工作正常,但是,我希望最後一個鏈接/標籤點擊記住整個網站,因爲用戶導航。
我該怎麼做?
最好的辦法是使用cookie來存儲活動選項卡的名稱。然後,在頁面加載時,用JS檢查cookie,並將其用作顯示正確選項卡和隱藏其他選項的基礎。
我會建議設置和讀取餅乾jQuery的cookie的插件: http://plugins.jquery.com/project/Cookie
您的代碼可能是這個樣子(速寫,所以可能沒有語法錯誤):
MARKUP
<ul id="tabs">
<li id="tab-a">First tab</li>
<li id="tab-b">Second tab</li>
<li id="tab-c">Third tab</li>
</ul>
JAVSCRIPT
//On Window load:
if ($.cookie('activetab')) {
var activetabId = $.cookie('activetab');
$('#tabs li').removeClass('active');
$('#'+activetabId).addClass('active');
}
//On tab click
$('#tabs li')click(function(){
var id = $(this).attr('id');
$.cookie('activetab',id);
});
您可以使用cookie(瀏覽器中爲特定網站保存的一段信息)做到這一點。該cookie可以保持當前打開的選項卡。
一個很好的指南可以爲您節省已最後點擊側邊欄中的標籤的ID。例如:
$("#sidebar").data("lastClickedTab", $("#theTab")[0].id);
如果用戶導航到網站上的另一個頁面並重新加載側邊欄,這項工作將會進行嗎? – raklos 2011-03-17 12:08:54
不,如果DOM(頁面)被重新加載,數據將會丟失。如果你有頁面重新加載,cookie可能會更好。 – StefanS 2011-03-17 18:41:15