2014-11-03 119 views
0

我正在創建一個jQuery Mobile站點(1.4.2)並使用面板。如果窗口寬度爲gt 768,我已經設置了一個腳本來加載面板。這適用於關閉面板並希望在執行特定任務時保持關閉的用戶例外,所以我正在考慮設置一個cookie值,當他們關閉面板時,只運行打開面板的腳本(如果未設置cookie)。jQuery Mobile Panel/jQuery Cookies

對於我最初的劇本我有以下的,一切都很好 -

<script>  
$(document).on('pageinit', function() { 
    var width = $(window).width(); 
    if(width > 768) { 
     $('##bluebuttonsPanel').panel('open');     
    } 
}); 
</script> 

使用jQuery的cookie的插件我設置這樣的餅乾 -

<script> 
$(document).on('pageinit', function() { 
    if($('.ui-panel').hasClass('ui-panel-closed') == true) { 
     $.cookie('panel','is-hidden'); 
    } else { 
     $.cookie('panel','is-visible'); 
    }; 
}); 
</script> 

當我感到困惑試圖當他們單擊面板的選項卡時更改cookie的值,那麼如果面板cookie值設置爲'is-hidden',則不運行初始打開的腳本。所以,我不知道如何改變點擊測試在開放腳本的條件cookie的值...

$('a#tab').click(function() { 
    if ($.cookie('panel', 'is-visible')){ ...? 

任何幫助將不勝感激!我希望我能正確發佈這篇文章,因爲我沒有發佈很長一段時間! TIA!

+0

您的應用程序是否都在一個網頁中運行?如果是這樣,你可能要考慮全局變量而不是cookie。 Cookies通常用於在瀏覽器會話之間保存狀態,而不是在單個瀏覽器會話中保持狀態。 – Kolban 2014-11-03 23:49:39

+0

感謝Kolban!不,我們正在整個應用程序中更改頁面。因此,無論何時發生頁面刷新或頁面更改,打開面板的腳本都會在每個請求上運行並重新打開面板。表單提交不是Ajax,頁面也不會改變。這就是我想要重新擁有的東西! – user3059071 2014-11-04 00:04:40

+0

我很樂意提供幫助,但我仍然沒有得到解謎的感覺。例如,您有兩個