いくつかのページをロードするjQueryMobileWebアプリを作成しています。
たとえば、a.html
私のメインページです。、、 ...、b1.html
と呼ばれる場合があります(ユーザーはボタンの1つをクリックできます)。(ページはjQuery Mobileのajaxナビゲーション機能で読み込まれています)b2.html
b100.html
b[i].html
そして、各ページにはいくつかのイベントがありid
、すべてのページで同じものがたくさんありb[i].html
ます。ただし、重要なのは、いつでも、そのうちの1つだけがDOMに含まれている可能性があるということです。id
したがって、競合などは発生しません。
問題
問題は、イベントの競合です。a.html
ユーザーがから戻るとb[i].html
、HTMLは削除されますが、イベントは残ります。これは、最初にに移動しb[i].html
、次にに戻ってからにa.html
移動すると、多くの問題を引き起こしb[j].html
ます。つまり、b[j].html
正しく動作しません... :(
私が試したこと
a.html
すべてのイベントを削除するために、これを入れました。
$("#mainpage").off("pagebeforeshow").on("pagebeforeshow",function() {
$("*").not("#mainpage").off();
//Other initialization codes...
});
しかし、問題は解決されていません...
(mainpage
のIDdata-role="page"
ですa.html
)
例
たとえば、私はそれぞれにこれを持っていますb[i].html
:
$(window).resize(function () {
alert("Resized");
});
最初(でa.html
)、ウィンドウのサイズを変更してもアラートは表示されませんが、にアクセスb[i].html
してから戻った後a.html
、そのコード行を使用してもウィンドウのサイズを変更するとアラートが表示されます(私が試したこと部。)...
a.html
では、ユーザーがから戻ってきたときにこれらのイベントハンドラーを削除するにはどうすればよいb[i].html
ですか?