我想阻止用户访问我的 jqm 页面的子页面。为此,我使用pagebeforecreate
事件来检查某个条件,并根据该条件更改显示的页面(取消当前页面加载并重定向或正常加载当前起始/主页)。changePage()
问题是,即使我调用该preventDefault()
方法,在执行之前我仍然看到页面闪烁。我还使用了一个相对 URL 作为第一个参数(to
='page.php'),changePage(to, options)
因为我的#subpage1
谎言page.php
应该打开 - 它确实打开了 - 但是由于没有进行真正的刷新,所以转换被破坏了。
请注意,我有一个page.php
包括不同#subpage
的 (例如#subpage1
, #subpage2
)。
jQuery(document).on('pagebeforecreate', '#subpage2', function(event, data) {
if (!isCondition1() && !isCondition2()) {
// stop loading #subpage2
event.preventDefault();
jQuery.mobile.changePage(jQuery('#subpage1'), {
data: 'lang=de¶m1=foo¶m2=bar',
reloadPage: true,
type: 'get'
});
}
// go on loading #subpage2
});
jQuery(document).one('pageinit', '#subpage2', function() {
// do something
});