2

多くのページが相互にリンクされた JQuery Mobile アプリケーションがあります。ページ A にリンクを配置し、href をページ B に設定すると、このスクリプトは正常に動作します。

$(document).on('pageshow','#pageB',function(){
    alert('hello!');
});

しかし、ページ A にボタンを配置し、onclick イベントに対して次のコードを記述した場合:

window.location="pageB.html";

pageshow イベントはもう発生しません! 問題はどこですか?window.location を使用して pageshow イベントをキャッチするにはどうすればよいですか?

4

1 に答える 1

3

window.locationまたはを使用するwindow.location.hrefと、Ajax を使用せずに通常どおりにページが読み込まれ、DOM 内の以前のページがすべて削除されます。

pageA.htmlに読み込まれた JS ライブラリがある場合、これらは削除されているため、 pageB.htmlを読み込んだときに機能しません。

したがって、 JS コード/ライブラリを機能させるには、JS ライブラリをpageB.htmlに配置する必要があります。<head>


アップデート

を使用してAjax経由でページ/ htmlファイルをロードします

// jQM 1.3.2 and below
$.mobile.changePage("#page_id" or "URL");

// jQM 1.4
$.mobile.pageContainer.pagecontainer("change", "#page_id" or "URL");
于 2013-11-29T20:50:55.327 に答える