jquery mobile $.mobile.showpageloadingmsg() не работает

Я хочу показать загрузочное сообщение во время перехода страницы в jQM и магистрали. Но showPageLoadingMeassage не работает. Вот мой код: collection.js

findById : function(artistId, page, limit, sort) {
    $.mobile.showPageLoadingMsg('a', 'Loading......', false);
    var self = this;
    if (limit == undefined) {
        limit = 10;
    }
    $.mobile.showPageLoadingMsg('a', 'Loading......', false);
    console.log("hello");
    $.ajax({
        type: "GET",
        url: siteURL + 'artists/artist_detail/artist_id'  + artistId  + '.json',
    }).done(function(msg) {
        var response = JSON.parse(msg);

        if (response.status == true) {
            var dataArray = response.data;
            console.log(dataArray);
            self.reset(dataArray);

            if (self.length > 0) {
                $.mobile.hidePageLoadingMsg();
            }
            //return  dataArray;
        } $.mobile.showPageLoadingMsg($.mobile.pageLoadErrorMessageTheme, 'Sorry! No records found', true);
            setTimeout(function() {
                $.mobile.hidePageLoadingMsg();
            }, 1500);
        }
    });
}

где я ошибаюсь?

Отредактировано: работает, когда для поиска страницы:

... findByTitle : function(keyword, genre, language, page, limit, sort, collection, fan, featured) {
            //~ console.log(page);
            var self = this;
            if (limit == undefined) {
                limit = 10;
            }
            $.mobile.showPageLoadingMsg('a', 'Searching......', false);
            $.ajax({....

2 ответа

Решение

Нашел ответ на самом стеке потока - jQuery Mobile - Проблемы с настройкой showPageLoadingMsg для работы с pagebeforeshow или pagebeforeceate. Это говорит о том, что иногда jQM не добавляет класс ui-loading в тело, поэтому мы должны сделать это вручную.

$('body').addClass('ui-loading');
    $.mobile.showPageLoadingMsg('a', 'Searching......', false);

и при этом скрывая загрузку сообщения:

setTimeout(function() {
    $('body').removeClass('ui-loading');   //remove class
    $.mobile.hidePageLoadingMsg();
}, 1000);

Эта функция также устарела, и в текущих версиях ее нет вообще.

Другие вопросы по тегам