2

ページ feed.html は、ブラウザから呼び出されたときに正常に動作しa href="feed.html"ますが、ページの読み込みを介して別のページから呼び出されたときに内部のリストビューが表示されません。

feed.html で動作するスクリプトには含まれて$('#feedList').listview('refresh');おり、直接の URL から呼び出すと正常に動作します。

そのため、リダイレクト後にページを更新する必要があるたびに動作します。

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');
        });
    }

このコードだけでは問題なく動作しますが、別のページから呼び出された場合、リストは更新されません。

4

1 に答える 1

2

これは大雑把な推測ですが、あなたの場合の何が悪いのかはわかっていると思います。

この状況を理解するには、jQuery Mobile がどのように機能するかを理解する必要があります。ajax を使用して他のページをロードします。

最初のページは正常に読み込まれます。その HEAD と BODY は DOM にロードされ、他のコンテンツを待機します。2 番目のページが読み込まれると、その BODY コンテンツのみが DOM に読み込まれます。したがって、ページを直接開いて JavaScript を HEAD 内に配置すると、JavaScript は正常に実行されますが、他の HTML ファイルを開いてその JavaScript が head にある場合は、BODY のみが読み込まれるため破棄されます。

この問題とその解決方法 (+ 実用的な解決策) について詳しく知りたい場合は、私の他の回答をご覧ください

于 2013-05-17T13:19:00.853 に答える