JQM(jQueryMobile)在changePage()上将最后一页推出DOM
Posted
技术标签:
【中文标题】JQM(jQueryMobile)在changePage()上将最后一页推出DOM【英文标题】:JQM (jQueryMobile) Push last page out of DOM on changePage() 【发布时间】:2011-08-09 21:53:51 【问题描述】:我注意到我刚刚查看的页面仍在 DOM 中。在我使用 changePage() 转换到新页面后,有没有办法删除查看的最后一页?
我已禁用所有后退导航,因为我不希望在转换到新页面时使用返回到最后一页。
有什么建议吗?
网站流程:
主页->填写信息->在changePage()上提交 下一页->填写更多信息->在changePage()上提交 等等……页面提交后我就不再需要它了
更新:
这是第一页:
<div data-role="page"
id="first_page"
data-theme="z"
data-backbtn="false"
data-url="first_page"
class="ui-page
ui-body-z">
添加新页面时它会在此附加一些内容:
<div data-role="page"
id="next_page"
name="next_page"
data-theme="z"
data-title="next_page"
data-url="getNextPage.php?page=next_page"
class="ui-page
ui-body-z">
像这样调用 live():
// pageName[index] = next_page
$('#'+pageName[index]).live('pagecreate',function(event, ui)
$(ui.prevPage).remove();
像这样使用 changePage():
$.mobile.changePage('getNextPage.php?page='+pageName[index],'slide',false,false);
【问题讨论】:
【参考方案1】:不完全了解您的标记我猜您正在手动触发changePage()
。如果是这种情况,您可以连接here 列出的事件之一。
页面展示 在页面被触发时 显示,在其转换完成后。
$('div').live('pageshow',function(event, ui)
$(ui.prevPage).remove();
);
Example on jsfiddle.
【讨论】:
是的,这就是我现在正在做的事情。什么是垃圾部分? 用代码示例更新了我的问题,但您的建议的实施在演示中有效,但不适用于我的项目。我会将 prevPage id/name 传递给 remove() 吗? 不要将.live()
注册到#id,尝试将.live()
放在data-role="page"
$('div[data-role="page"]').live('pageshow',...
的任何div上,并尝试使用pageshow
而不是pagecreate
嗯,确实可以删除 prevPage 但 pageShow 会破坏我的页面功能,因为我在显示页面之前添加了元素的自定义验证/页面呈现。我正在做的是从 ajax 调用加载每一页,所以只有一页在内存中
hmmm 因为你有一个id
s 数组,也许在你的pagecreate
中简单地做$('#'+pageName[index]).remove()
?【参考方案2】:
我不确定这是否与您的问题有关 - 但昨天有一个 JQM 修复与尝试删除 DOM 元素时的错误有关:https://github.com/jquery/jquery-mobile/commit/d4c7b5da66641a3fd081a834ca3d12a5518d499b
【讨论】:
以上是关于JQM(jQueryMobile)在changePage()上将最后一页推出DOM的主要内容,如果未能解决你的问题,请参考以下文章
Jquery Mobile 滑块不工作 JQM 1.3.2 和 Jquery 1.10.2
jQuery Mobile 1.4.3 修复工具栏和页面内容问题