0

我显然在理解 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 导航错误,所以请纠正我。

谢谢

4

1 回答 1

0

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

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

于 2014-06-14T21:10:40.317 回答