2014-11-03 89 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

我很乐意提供帮助,但我仍然没有得到解谜的感觉。例如,您有两个