我在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导航错误,所以如果我是,请纠正我。
由于
答案 0 :(得分:0)
jQuery Mobile使用Ajax加载页面。当你直接去那里时,整个页面被加载(因此不保留任何状态)。当您单击要导航的页面时,jQuery Mobile将接管并通过Ajax加载新页面。由于页面没有改变,它的状态是相同的(它不是真的“保留它”,它只是保留原样)。
您的选择是挂钩jQuery Mobile Events之一,例如pagechange
,并根据需要重置/修改任何变量或状态元素。