jQuery Mobile:加载消息未出现

3

我使用jQuery Mobile、jQuery和html制作了一个web应用程序。它基本上是针对其网站的RSS阅读器。

$(document).ready(function() {
$('[data-role=button]').click(function() {
    var $id = $(this).attr('id');
    switch($id)
    {
        case 'news-button':
        var type = 'news';
        var url = '/tag/news/';
        break;
        //etc...
    }
    $.get('http://wiiuandmii.com' + url + 'feed/', function(data) {
        $('#' + type + '-content').empty();
        var i = 0;
        $(data).find('item').each(function() {
            i = i + 1;
            $('#' + type + i).empty().remove();
            var $item = $(this);
            var html = '<li>';
            html += '<a href="#'+ type + i + '">';
            html += $item.find('image').text();
            html += '<h3 style="color: #01acca;">' + $item.find('title').text() + '</h3>';
            html += '<p>' + $item.find('pubDate').text() + '</p>';
            html += '</a>';
            html += '</li>';
            $('#' + type + '-content').append($(html));
            $('#' + type + '-content').find('img.attachment-thumbnail').removeClass().removeAttr('width').removeAttr('height');
            $('#' + type + '-content').listview('refresh');
            var page = '<div data-role="page" id="' + type + i + '" data-url="' + type + i + '">';
            page += '<div data-role="header" data-theme="c" data-position="fixed"><a href="#home" data-rel="back" data-theme="b" data-icon="arrow-l">Back</a><h1 style="margin-top:0px; margin-bottom:0px;"><img src="images/header.png" title="Wii U and Mii" alt="Wii U and Mii"/></h1></div>';
            page += '<div data-role="content" data-theme="c" class="main-' + type + i + '">';
            page += '<h1 style="color: #01acca;">' + $item.find('title').text() + '</h1>';
            page += '<p>' + $item.find('dc:creator').text() + '</p>';
            page += $item.find('desc').text();
            page += '</div>';
            page += '<div data-role="footer" data-theme="c"></div>';
            page += '</div>';
            $('body').append($(page));
            var test = '#' + type + i;
            $(test).page();
        });
    });
});
});

当主页面上的按钮被点击时,它会顺利地转换到#news页面。问题在于,#news页面的内容部分在加载约5秒钟后仍然为空白。加载消息不会出现。应该出现的是,加载消息应该出现在#home页面上,而所有内容加载完毕后,然后转到填充好的#news页面。
如果我想要的效果触发了错误的内容加载事件,那么我应该使用哪个事件呢? 2011年9月30日修订 我已经成功地使页面转换等待列表完全加载后再转换,但是加载消息仍未出现。
我使用了:
$('#news').live('pagebeforeshow',function(event){
    $.mobile.showPageLoadingMsg();

替代document ready和.click方法,我使用了:

$.ajax({
    url: 'http://wiiuandmii.com' + url + 'feed/',
    async: false,
    success:function(data){

使用.get()的替代方法


你是在明确设置加载消息吗?如果是,能否提供一下您的代码呢?如果不是的话,那么您可能需要在单击处理程序中进行设置。 - Dave
你是如何加载内容的?你是否在自己的端上做了一些聪明的事情来填充新闻页面? - Mike Robinson
使用 .get(),我编辑了剩下的代码,抱歉之前应该早点添加。 - tblakey89
我尝试过在函数的开头和结尾添加$.mobile.pageLoading(true/false),但在这种情况下似乎不起作用。 - tblakey89
我有同样的问题。你解决了这个问题吗? - dev.e.loper
我将编辑我的半成品,基本上已经让主页等待列表加载完成,但是即使添加了显示和隐藏加载函数,加载动画仍然没有出现。 - tblakey89
2个回答

3

虽然已经有一个被接受的答案,但我想补充一下,我遇到了完全相同的问题,并且我解决了将showPageLoadingMsg调用从pagebeforeshow移动到pageshow处理程序。希望这可以帮助到你。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接