2

このシナリオをjQuery Mobile; リストビューで2番目のページを開く最初のページにボタンがある2つのページ、2ページ目が表示さlistviewれるたびに発生する再初期化を防ぎたいです。

<body>
    <div data-role="page" data-theme="c" id="page1">
    <div data-role="content">
        <a id="page1button" href="#page2" data-transition="none" data-role="button">Select an item</a>
        </div>
    </div>
    <div data-role="page" id="page2" data-dom-cache="true">
        <div data-role="content">
            <ul data-role="listview" data-theme="c" data-filter="true">
                <li data-icon="false"><a href="#page1">ABC</a></li>
                <li data-icon="false"><a href="#page1">BCD</a></li>
                <li data-icon="false"><a href="#page1">CDE</a></li>
                <li data-icon="false"><a href="#page1">DEF</a></li>
            </ul>
        </div>
    </div>
</body>

listviewこのサンプル コードでは、(コードを短くするために) リスト ビューに 4 つの項目しか表示されていませんが、リスト ビューにさらに多くの項目があり、スクロールバーが表示されるのに十分な項目がある場合、問題をよりよく説明できます。

たとえば、 に80 個の項目があるiPad場合listview、2 ページ目にいて、一番下までスクロールしてリストの一番下にある項目を選択すると、jQuery Mobile がページにスクロールして戻ることに気付くでしょう。 1. 今のところ問題ありません。しかし、ボタンをクリックしてページ 2 に戻ると、listview再初期化され、再び一番上にスクロールされます。これは私が防ぎたいことです。1ページに移動してから、2ページに戻って、元listviewの状態と同じ状態にしたいと考えています。

したがって、ページが表示されるたびにlistview初期化するのではなく、一度だけ初期化する必要があります。listviewこの初期化がどのイベントで行われているかを誰かが知っていますか? このアクションを無効にすることは可能ですか?

4

1 に答える 1

2

jQuery Mobile は、ページ間のスクロール位置を保持しません。ただし、ページ ナビゲーション イベントの一部をトラップして保持できるはずです。復元する場合は、silentScroll不要なイベントの多くをトリガーすることなく、位置を復元するために使用できます。

于 2012-07-16T22:02:57.400 に答える