私の jQuery Mobile ページのいくつかでは、ページの表示を許可する前に、特定の変数が設定されていることを確認する必要があります。そのため、pagebeforeshow
イベント内でこれらの変数をチェックし、それらが存在しないか正しくない場合は$.mobile.changePage(...)
、イベント内で を呼び出してpagebeforeshow
すぐに戻ります。
jQuery Mobile 1.2.1 では、これは完全に機能しているように見えました。しかし、jQuery Mobile 1.3.1 を使用しているので、奇妙なレンダリングの問題に気付きました。イベント内で changePage を呼び出すと、pagebeforeshow
jQuery Mobile は要求したページに遷移し、元のページに戻ってpageshow
イベントを発生させ、最後に changePage を行ったページに遷移します。
大きな問題ではありませんが、これは不都合であり、不必要な移行を引き起こします。他の誰かがこの問題に遭遇しましたか?もしそうなら、不要な遷移とイベントの発生を防ぐことができましたか? ありがとう!
コード例:
$('#ConditionalPage').on('pagebeforeshow', function () {
if (!someScopedVariable) {
$.mobile.changePage('#RegularPage');
return;
}
}
$('#ConditionalPage').on('pageshow', function () {
... \\ Code that gets fired even though pagebeforeshow called changePage.
}