为什么AI bool标志不会通过下一页保留?

时间:2016-05-09 03:52:26

标签: javascript jquery

玩家可以为此游戏选择1P或AI模式。我们只是使用旗帜跟踪它。但是,如果我们在单击时将标志更改为true,则在我们路由到下一页时它会返回到默认值false。例如:

演练:用户会选择他们想要播放的模式 - AI或1P。然后,他们点击播放,将他们带到一个页面来选择一个主题。选择主题后,它们将被路由到相应的AI或1P游戏页面。

var ai = false;

$('.mode').click(function() {
     ai = !ai;
     $(this).text(function(i, text) {
        return text === 'Select Mode: AI' ? 'Select Mode: 1P' : 'Select Mode: AI';
    });
});

$('.states').click(function() {
     // TODO flag engine to grab words from the states word bank
     if (!ai) {
        location.href = 'game.html';
      } else {
        location.href = 'roboGame.html';
      }
});

1 个答案:

答案 0 :(得分:1)

每次使用此脚本加载页面时,脚本中设置var ai = false的部分都在运行。尝试使用浏览器localStorage。

var ai = localStorage.getItem('ai-flag') || false;

// before navigating to next page
localStorage.setItem('ai-flag', ai);

或者对于更安全的解决方案,您可以在路由时使用查询参数:

// on load
var ai = /ai=true/.test(location.search);

// on redirect
location.href = 'index.html?ai=' + ai;

第二种解决方案的好处包括能够深度链接到特定的状态!