1

我正在导航到 jQuery Mobile 应用程序中的外部 html 页面。该页面需要一段时间加载我想同时显示加载器但它不起作用..这是我尝试过的..

$(document).ajaxStart(function() {
        //  $.mobile.loading('show');
        $.mobile.loading( "show", {
                    text: 'Please Wait!',
                    textVisible: 'true',
                    theme: "b",
                    textonly: 'true',
                    html: ''
            });

        });

        $(document).ajaxStop(function() {
            $.mobile.loading('hide');
        });

我知道 rel="external" 禁用 ajax,有什么方法可以显示这个加载程序打开外部链接..?

4

1 回答 1

1

当您移动到禁用 Ajax的外部页面时,加载程序不会显示,因为 DOM 已被擦除并替换为该外部页面的内容。

在导航之前显示加载器的唯一可能方法是将移动到该页面延迟setTimeout().

HTML

<a href="http://www.*****.com" rel="external" class="ui-btn external">External Page</a>

JS

$(document).on("pagecreate", "#pageID", function () {
    $(".external").on("click", function (e) {
        e.preventDefault();
        var url = $(this).attr("href");
        $.mobile.loading("show", {
            text: "redirecting...",
            textVisible: true
        });
        setTimeout(function () {
            location.href = url;
        }, 2000); // 2secs delay
    });
});

演示-代码

于 2014-06-18T08:26:58.923 回答