使用jQuery cookie在Phonegap应用程序中设置主题设置

时间:2013-05-04 11:58:49

标签: jquery cordova local-storage persistent-storage jquery-cookie

我有一个具有不同主题选项的Phonegap应用程序。为了使主题选择在每个应用程序启动时保持不变,我想用jQuery设置一个cookie。但是在浏览器中每次刷新(我测试的地方)之后,标准主题又回来了。

你可以给我一些提示吗?

这是我应用开头的标记

<body>
  <div class="theme1">
   <div id="page1">
   (...) // app markup
  <script src="js/jquery.js"></script>
  <script src="js/jquery.cookie.js"></script>
  <script>HERE GOES MY SCRIPT</script>
</body>

我设置了标准主题。

现在,我做的是,当我点击另一个主题(例如#theme8)时,这会发生在我的脚本

    $('#theme8').bind('click', function () {
     if ($('body > div').hasClass('theme8')) {
      // go back to the home screen
   } else {
        $('body > div').removeClass();
        $('body > div').addClass("theme8");
       // go back to the homescreen
   }
     $.cookie('theme_eight', 'applied');
   });

这是我的cookie:

var theme_eight = $.cookie('theme_eight');
if (theme_eight == 'applied') { 
    $('body > div').removeClass();
    $('body > div').addClass("theme8");
};

与其他7个主题相同。那有什么问题呢?为什么我的主题选择不会持续存在?是否有更简洁的解决方案来实现这一目标?

1 个答案:

答案 0 :(得分:0)

而不是cookie看看Localstorage。它持久耐用,然后使用cookies

http://docs.phonegap.com/en/2.7.0/cordova_storage_storage.md.html#localStorage

 function onDeviceReady() {
        window.localStorage.setItem("key", "value");
        var keyname = window.localStorage.key(i);
        // keyname is now equal to "key"
        var value = window.localStorage.getItem("key");
        // value is now equal to "value"
        window.localStorage.removeItem("key");
        window.localStorage.setItem("key2", "value2");
        window.localStorage.clear();
        // localStorage is now empty
    }