4

私の jQuery Mobile ページのいくつかでは、ページの表示を許可する前に、特定の変数が設定されていることを確認する必要があります。そのため、pagebeforeshowイベント内でこれらの変数をチェックし、それらが存在しないか正しくない場合は$.mobile.changePage(...)、イベント内で を呼び出してpagebeforeshowすぐに戻ります。

jQuery Mobile 1.2.1 では、これは完全に機能しているように見えました。しかし、jQuery Mobile 1.3.1 を使用しているので、奇妙なレンダリングの問題に気付きました。イベント内で changePage を呼び出すと、pagebeforeshowjQuery 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.
}
4

1 に答える 1

0

私も同じ問題を抱えていました。あるページから別のページにページを変更したところ、うまくいきました。しかし、私が戻ったとき:

$.mobile.changePage("#frontPage");

ページは 2 つのページ間で数回移動しました。

この問題は、私が定義したいくつかの機能を移動することで解決されました:

$(document).on('pagebeforeshow', '[data-role=page]', function () {...})

の中へ:

$(document).on('pageinit', '[data-role=page]', function () {...})
于 2013-08-19T08:15:23.930 に答える