0

PhoneGap と JQuery Mobile を使用して、基本的な RSS フィード リーダーを設計しようとしていました。ページが最初に読み込まれ、フィードが表示されるまでに時間がかかります。ユーザーが投稿のタイトルを表示し、興味がある場合は投稿を展開できるように、各投稿にアコーディオンを追加しようとしています。これは私が使用したスニペットです:

for (var i = 0; i < result.feed.entries.length; i++) {
    var entry = result.feed.entries[i];
    var title = entry.title,
    link = entry.link,
    description = entry.contentSnippet,
    pubDate = entry.publishedDate;
    feedItem = feedItem + '<div data-role="collapsible" data-theme="a" data-content-theme="a"><h3><a href="' + link + '>';
    feedItem = feedItem + '<span class="feeditemtitle">' + title + '</span>';
    feedItem = feedItem + '</a></h3>';
    feedItem = feedItem + '<h6>' + pubDate + '</h6>';
    feedItem = feedItem + '<p>' + description + '</p></div>';
}

ページに投稿を取得できますが、アコーディオンはありません。投稿をプレーンな HTML としてレンダリングします。ページが読み込まれたに投稿が読み込まれるためだと思います。誰でもこれで私を助けてもらえますか?

4

2 に答える 2

3

ロードされたコンテンツを更新する必要があります。

このノードに追加されていると仮定すると、<div id="loaded-content" data-role="collapsible-set"></div>次のことを行う必要があります。

$('.loaded-content').collapsibleset('refresh');

Ajax 呼び出しをエミュレートし、遅れてアコーディオンを作成する私のフィドルを見ることができます: http://jsfiddle.net/ooflorent/FkT8H/

于 2012-07-03T15:22:36.560 に答える
0
for (var i = 0; i < result.feed.entries.length; i++) {
    var entry = result.feed.entries[i];
    var title = entry.title,
    link = entry.link,
    description = entry.contentSnippet,
    pubDate = entry.publishedDate;
    feedItem = feedItem + '<div data-role="collapsible" class="accordItem" data-theme="a" data-content-theme="a"><h3><a href="' + link + '>';
    feedItem = feedItem + '<span class="feeditemtitle">' + title + '</span>';
    feedItem = feedItem + '</a></h3>';
    feedItem = feedItem + '<h6>' + pubDate + '</h6>';
    feedItem = feedItem + '<p>' + description + '</p></div>';
    if(i == result.feed.entries.length-1){
        $(".accordItem").collapsible();
    }
}
于 2012-07-03T14:59:07.643 に答える