了解jQuerymobile导航模型(更改页面时如何清除所有状态)

时间:2014-06-14 21:04:42

标签: javascript jquery jquery-mobile navigateurl

我在jquerymobile中理解页面转换时遇到了一些麻烦。

似乎当我从一个页面导航到另一个页面时(通过简单的锚点href或$ .mobile.navigate),会传递一些状态。

例如,假设我在第1页的脚本标记中声明了一个类似的变量:

<script>
  var randomVar = 'abcd';
</script>

然后在第2页,我有以下脚本标记:

<script>
  console.log(randomVar);
</script>

如果我直接进入第2页,则控制台上会出现错误: “未捕获的ReferenceError:未定义randomVar”。 这是我的预期行为。

但如果我转到第1页,然后导航到第2页,控制台将打印“abcd”。因此,似乎第1页的状态/变量将被传递到第2页。

我想阻止这一点。在进行这种转换时,有没有办法清除所有状态? 我只希望这对于某些页面转换。我有导航到其他模态的页面,但我希望它们具有第1页的状态。

我可能正在考虑整个jQM导航错误,所以如果我是,请纠正我。

由于

1 个答案:

答案 0 :(得分:0)

jQuery Mobile使用Ajax加载页面。当你直接去那里时,整个页面被加载(因此不保留任何状态)。当您单击要导航的页面时,jQuery Mobile将接管并通过Ajax加载新页面。由于页面没有改变,它的状态是相同的(它不是真的“保留它”,它只是保留原样)。

您的选择是挂钩jQuery Mobile Events之一,例如pagechange,并根据需要重置/修改任何变量或状态元素。