3

我想阻止用户访问我的 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&param1=foo&param2=bar',
            reloadPage: true,
            type: 'get'
        });
    }
    // go on loading #subpage2
});

jQuery(document).one('pageinit', '#subpage2', function() {
    // do something
});
4

1 回答 1

0

您是否尝试过在 html 中将正文样式设置为 display:none?然后如果页面加载正确,您可以设置它的显示属性吗?那应该是防止页面闪烁的“解决方法”吗?

于 2012-10-18T08:57:30.800 回答