重定向后jQuery Mobile listview刷新

时间:2013-05-17 13:05:55

标签: jquery html jquery-mobile refresh jquery-mobile-listview

页面feed.html在从浏览器调用时工作正常,但是当通过a href="feed.html"页面加载从另一个页面调用它时,但里面的listview没有显示。

适用于feed.html的脚本包含$('#feedList').listview('refresh');,当从直接网址调用时,它可以正常工作。

因此,每次重定向工作后我都需要刷新页面。

getfeed.js:

    var newsfeeds;

    $('#feedListPage').bind('pageinit', function(event) {
        getFeedList();
    });

    function getFeedList() {
        $.getJSON(serviceURL + 'getfeeds.php', function(data) {
            $('#feedList li').remove();
            newsfeeds = data.items;
            $.each(newsfeeds, function(index, newsfeed) {
                $('#feedList').append('<li><a href="feeddetails.html?id=' + newsfeed.id + '">' +
                '<img src="' + newsfeed.img + '"/>' +
                '<h4>' + newsfeed.title + '</h4>' +
                '<p>' + newsfeed.desc + '</p>' +
                '</a></li>');
            });
            $('#feedList').listview('refresh');
        });
    }

这个代码单独运行正常,但是当它从另一个页面调用时,它不会刷新列表。

1 个答案:

答案 0 :(得分:2)

这是一个疯狂的猜测,但我想我知道你的情况有什么问题。

要了解这种情况,您需要了解jQuery Mobile的工作原理。它使用ajax加载其他页面。

第一页正常加载。它的HEAD和BODY被加载到DOM中,它们在那里等待其他内容。加载第二页时,只将其BODY内容加载到DOM中。因此,当您直接打开页面并将javascript放在HEAD中时,javascript将成功执行,但如果您打开其他html文件并且其javascript在头部,它将被丢弃,因为只会加载BODY。

如果您想了解有关此问题的更多信息以及解决方法(+工作解决方案),请查看我的其他答案: Why I have to put all the script to index.html in jquery mobile