2012-12-12 77 views
1

我正在使用類似下面的類切換的快捷鍵。如何堅持班級切換會話?

// Toggle admin bar using Tab + q 
key('tab + q', function(){ 
    $('body').toggleClass('admin') 
}); 

但我想在整個會話中存儲它。如何才能做到這一點?

我試圖使用jQuery.cookie.js

// Toggle admin bar using Tab + q 
if ($.cookie('adminBarVisible') == 'false') { 
    $('body').removeClass('admin') 
}; 

key('tab + q', function(){ 
    if ($.cookie('adminBarVisible') == 'true') { 
    $('body').removeClass('admin') 
    $.cookie('adminBarVisible', false) 
    } else { 
    $('body').addClass('admin') 
    $.cookie('adminBarVisible', true) 
    }; 
}); 

但在刷新了一段時間(0.5秒)我看到在頂部管理欄。

+1

客戶端,使用Cookie或本地存儲變量,該變量存儲爲特定用戶 –

回答

1

您可以使用:

  • 餅乾 - 大多數跨瀏覽器解決方案,利用document.cookie(或任何其它餅乾的javascript插件在那裏),以檢查時,如果事情首先應該切換的條件訪問cookie的值。使用cookie時會有額外的價值,因爲cookie會隨着每個請求發送到您的服務器,從而使它們可供服務器端使用。
  • localStorage - 易於使用,在較新的瀏覽器上可用,數據在會話中持續存在。
+0

我用''jquery.cookie.js''當前狀態:https://gist.github.com/37a11f3e1b94ec74c6fb,但我不喜歡方式我如何刪除線''3''中的班級 – tomekfranek

+0

你是什麼意思,你不喜歡它? removeClass代碼的複製?如果是這樣,將其抽象爲類似於https://gist.github.com/4267418這樣的其他函數。如果你控制(在服務器端)如果管理類被添加到正文,然後檢查(生成頁面時) * adminBarVisible * cookie的值,這樣你就可以從第2到第4行(從你的要點)中刪除代碼。 – WTK

+0

@regedarek你可以這樣做http://jsfiddle.net/lollero/aS7J3/1/ – Joonas