2

ええと、私はこの質問を数日前に埋めましたが、私が明確だったかどうかはわかりません.

だから、別の関数を使ってもっとシンプルなものを作った$.mobile.loadPage

私がやろうとしているのは、$.ajax通常のjqueryを使用するのと同じように、コンテンツを別のファイルからdivにロードすることです。

私のメインページで:

<div data-role="page">
    <button id="load" style="border: solid blue;">Click here to load</button>
    <div data-role="content" id="target">
    <!-- ajax load here -->
    </div>
</div>

これは別のファイルの html です。

<div id="secondPage" style="border:solid red;">
   <p>test</p>
</div>

最後に、js:

 $("body").on("click", "#load", function () {
    $.mobile.loadPage("mobile/favorites", {
        pageContainer: $('#target'),
        type: 'post',
        reloadPage: true
    });
});

エラーは表示されません。クロムのデバッグでチェックしたとおり、URL はコンテンツをロードします。

それで、私は何が欠けていますか?

4

1 に答える 1

1

あなたのコードは、あるページを別のページ内に読み込もうとしています。2 ページ目 ( id="secondPage") にdata-role="page"属性がありません。

ここであなたが試みていることを達成しようとしたことはありませんが、ドキュメントに基づいて混乱しているようです.

このメソッドはページをロードし、コンテナ (別のページではない) 内の DOM に挿入します。このreloadPageパラメーターは、読み込まれたページが既に DOM にある (以前に読み込まれた) 場合に強制的に更新します。あなたがしたいことではありません。

jQuery 経由でコンテンツをロードし、DOM に挿入してから$("#myDiv").load("ajax/test.html");、現在のページを次の$("#myPage").page("destroy").page();ように更新すると、うまくいくでしょう。jQuery Mobile によって拡張されていない html を単に挿入するだけの場合、この最後のビットは必要ないかもしれないことに注意してください。

于 2012-11-19T17:34:40.070 に答える