0

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({....
4

2 に答える 2

3

stackoverflow 自体で答えが見つかりました- 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);
于 2012-12-04T10:47:52.417 に答える