2012-03-09 22 views
1

我有两个页面,一个是配置文件页面,另一个是对话框页面,用于评论配置文件页面。当init()方法被触发时,问题出现在配置文件页面上我更新了DOM,但是一旦对话框页面关闭,在配置文件页面上再次触发init()。这不会是一个大问题,但我动态获取大量数据,不想再次执行。有没有办法让一些如何在配置文件页面的顶部打开对话框页面来说话,或者防止配置文件页面首先被隐藏?我可以打开对话框页面而不隐藏jquery mobile中的父页面吗?

<div data-role='page' id='profile'> 

<div data-role='content'> 
//dynamically fetch stuff for this div on pageInit() 
</div> 
</div> 

<div data-role="page" id="ProfileComment"> 
<div data-role="header"><h4>Post comment</h4></div> 
<div data-role="content"> 
    <textarea name="comment_data" id="comment_data"></textarea> 
    <input type="submit" id="button_post" value="Post"/> 
</div> 
</div> 
+0

什么触发init()? – 2012-03-09 00:16:47

+0

@ Beetroot-Beetroot当页面初始化时,每个jQuery Mobile页面都会触发'pageinit'事件。您可以在这里看到jQuery Mobile公开的不同自定义事件:http://jquerymobile.com/demos/1.1.0-rc.1/docs/api/events.html – Jasper 2012-03-09 00:52:05

回答

1

我假设您的网页位于不同的文档中。如果是这种情况,那么您可以在profile页面的data-role="page"元素上设置data-dom-cache属性为,因此当用户离开它(到comment页面)时,它将保留在DOM中并且页面状态将会被保存。

下面是这个设定的文档:http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-cache.html

默认情况下,jQuery Mobile的从DOM中删除页面,从他们(这是外部文件而已,没有多页面模板,所有的页面导航离开后总是在DOM中)。

相关问题