每次显示页面时停止jQuery Mobile初始化listview

时间:2012-07-16 21:49:33

标签: listview jquery-mobile

鉴于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个项目(为了保持代码简短),但如果列表视图中有更多项目,则可以更好地说明我的问题,足够的项目将导致{{1有一个滚动条。

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

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

1 个答案:

答案 0 :(得分:2)

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