2

鉴于这种情况jQuery Mobile;第一页上有一个按钮的两页,它打开了带有列表视图的第二页,我想防止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>

此示例代码仅在列表视图中显示 4 个项目(为了保持代码简短),但如果列表视图中有更多项目,我的问题可以更好地说明,足够的项目将导致listview滚动条。

因此,例如,在一个iPad中,如果listview有 80 个项目,那么您会注意到,如果您在第二页上并且向下滚动到底部并选择列表底部的一个项目,jQuery Mobile 会滚动回页面1.到目前为止,没有问题。但是当您单击按钮返回第 2 页时,将listview重新初始化并再次滚动到顶部。这就是我想要防止发生的事情;我希望能够转到第 1 页,然后返回第 2 页,listview并且与我离开时的状态相同。

所以我只想listview初始化一次,而不是每次显示页面。有谁知道这个listview初始化发生在哪个事件中?是否可以禁用此操作?

4

1 回答 1

2

jQuery Mobile 不保留页面之间的滚动位置。不过,您应该能够捕获一些页面导航事件并保留它;当您恢复它时,您可以使用它silentScroll来恢复位置,而不会触发许多您不想触发的事件。

于 2012-07-16T22:02:57.400 回答