1

jQuery Mobileを使用すると、以下のコードで次のことが行われます...

1) メニュー項目を生成し、インデックス ページに追加します。

2) メニュー項目の実際のページを作成します。

メニュー項目をクリックしても、そのページに移動しないように見えますか? マークアップで、正しい ID を持つページが存在することがわかります。

これは私がこれまでに持っているものです。

$.each(siteData["pages"], function(i,v) {
   $.mobile.activePage.find('[data-role=content]').append('' +
       '<a href='+ v["id"] + ' data-role="button">' + v["name"] + '</a>').trigger('create');

        // Prepare your page structure
        var newPage = $("<div data-role='page' id=>" + v["id"] +
           "<div data-role=header><a data-iconpos='left' data-icon='back' href='#' data-role='button' data-rel='back'>Back</a>" +
                         "<h1>Dynamic Page</h1>" +
                         "</div>" +
                         "<div data-role=content>Stuff here</div>" +
                         "</div>");

                 // Append the new page info pageContainer
                 newPage.appendTo($.mobile.pageContainer);



             }); 

マークアップ

<div data-role="page" id="index">
    <div data-theme="a" data-role="header">
        <h3></h3>
    </div>
    <div data-role="content" class="navlist"></div>    
</div>

動的に生成されたページ間を移動するにはどうすればよいですか?

誰かが私のコードを使った例を教えてくれませんか? ありがとうございました。

4

1 に答える 1

2

残念ながら、エラーはほとんどありません。

私の作業例を見てください。それはあなたのコードから作られています: http://jsfiddle.net/Gajotres/3kPTf/

$(document).on('pagebeforeshow', '#index', function(){       
    $.mobile.activePage.find('[data-role=content]').append('<a href="#second" data-role="button">Second</a>').trigger('create');

    var newPage = $("<div data-role='page' id='second'><div data-role=header><a data-iconpos='left' data-icon='back' href='#' data-role='button' data-rel='back'>Back</a>" +
                         "<h1>Dynamic Page</h1>" +
                         "</div>" +
                         "<div data-role=content>Stuff here</div>" +
                         "</div>");

    // Append the new page info pageContainer
    newPage.appendTo($.mobile.pageContainer);    

});
  • 最初のエラー、ボタン内の a タグを閉じて # タグを付けます。
  • 動的ページ div が適切に閉じられていません
于 2013-03-31T22:26:49.887 に答える