0

jQueryMobile でページを動的に生成しているのですが、新しく生成されたページが最新バージョンに更新されない理由がわかりません。

これは使用例です:

ページ A には、「a」要素のリストが含まれています。クリックすると、動的に生成される新しいページにアプリがリダイレクトされます。次に、ページ A に戻ります。別の「a」要素をクリックしますが、これ以降、アプリは動的に生成された最初のページに常にリダイレクトされます。

このフィドルを見てください:

http://fiddle.jshell.net/cqUrD/

これは私のコードです:

HTML

<div data-role="page" id="home">
    <div data-role="header" data-position="fixed">
         <h1>static page</h1>

    </div>
    <div data-role="content"> <a href="#" data-role="button" id="createfirst">Create new page</a>
        <div data-role="content"> <a href="#" data-role="button" id="createanother">Create another new page</a>

    </div>
    <div data-role="footer" data-position="fixed">
         <h1>footer</h1>

    </div>
</div>

jQueryMobile:

$(document).on('click','a',function() {
  nameId = $(this).attr('id');
    page = '<div data-role="page" id="page" data-theme="e"><div data-  role="header"><a data-role="button" href="#" data-rel="back" data-icon="back" data-iconpos="notext">back</a><h1>Dynamic page</h1></div><div data-role="content"> Last id was: '+nameId+'</div><div data-role="footer" data-position="fixed"><h1>footer</h1></div></div>';
    //alert(nameId); this prints the right value
  $.mobile.activePage.after(page);
    $.mobile.changePage('#page', {
        transition: 'flip'
    });
});

どうすればこの問題を解決できますか? 新しいページの更新されたバージョンを常に表示する必要があります。

前もって感謝します!

4

2 に答える 2

1

ボタンを2回クリックすると、同じIDのページがすでにDOMにあるため、jQueryは同じIDの2番目のページを作成できないと思います(おそらくキャッシュ)。コードを少し変更しました。#pageが既に存在する場合は削除する必要があります。

if ($('body').find('#page').length != 0) $("#page").remove();

リンク: http://fiddle.jshell.net/cqUrD/1/

于 2013-06-21T06:34:01.893 に答える