在我的几个 jQuery Mobile 页面中,我需要确保在允许页面显示之前设置了某些变量。因此,我在pagebeforeshow
事件中检查这些变量,如果它们不存在或不正确,我调用事件$.mobile.changePage(...)
内部pagebeforeshow
,然后立即返回。
在 jQuery Mobile 1.2.1 中,这似乎工作得很好。然而,现在我使用的是 jQuery Mobile 1.3.1,我注意到了一个奇怪的渲染问题。现在,当我在事件中调用 changePage 时pagebeforeshow
,它会导致 jQuery Mobile 转换到我请求的页面,然后回到原始页面,触发pageshow
事件,最后转换回我执行 changePage 的页面。
虽然不是主要问题,但它会带来不便并导致不必要的转换。有没有其他人遇到过这个问题,如果是这样,您是否能够防止不必要的转换和事件触发?谢谢!
示例代码:
$('#ConditionalPage').on('pagebeforeshow', function () {
if (!someScopedVariable) {
$.mobile.changePage('#RegularPage');
return;
}
}
$('#ConditionalPage').on('pageshow', function () {
... \\ Code that gets fired even though pagebeforeshow called changePage.
}