2012-03-29 61 views
2

后jQuery Mobile的加载通过$ .mobile.changePage下页内容(...)jQuery Mobile的隐藏初始页面,而不是删除它

我一直在寻找一种方式来删除初始页容器

什么我遇到的是,这个最初的DIV元素,当第一次显示的页面将始终保持在页面上创建 - 并且将只调用后隐藏 $ .mobile.changePage(...)

我需要删除这个初始页面容器,因为有些旧数据驻留在那里,应该在首页更改时重置。

任何人都有解决方案吗?一直在网上搜索,但无济于事。

在我调用$ .mobile.changePage(...)之后,我也试图做$('#first-page')。remove(),但是这会删除初始页面并使新加载的页面隐!

编辑:通过清理使用html的初始DIV(“”)

+1

为什么您需要将初始页面删除?你能否更新数据的值? – shanabus 2012-03-29 16:45:39

+0

我宁愿没有不必要的DOM元素在页面上,导致移动设备上的内存增长...但你给了我一个想法 - 也许我可以清理inital页面元素,而不是试图隐藏它......将尝试尽快,谢谢! – 2012-03-29 17:41:14

回答

1

你可以只让下一个页面加载没有Ajax解决,这应该删除初始页。

data-ajax="false"

希望这有助于!

+0

抱歉,不能这样做...我需要保留AJAX功能 – 2012-03-29 14:59:20

+0

我通过使用.html(“”)完全清除初始页面div来解决此问题。尽管如此,如果我不需要保存AJAX调用,那么您的答案是有效的,所以接受:) – 2012-03-30 10:55:19

1

我认为你是动态创建这些页面。 API中有一个隐藏的方法,但您可以将其应用于任何页面,然后在该页面退出时将其删除。

$.mobile._bindPageRemove 

因此,它可能看起来像这样

newpage.attr("data-" + $.mobile.ns + "external-page", true).one('pagecreate', $.mobile._bindPageRemove); 

注:由于这是一个隐藏的方法,它是隐藏的API的一部分,并可能会受到在升级时,恕不另行通知更改。如果使用这个,请在​​升级后仔细测试。

+0

upvoted为您的洞察力,虽然我真的不想使用未公开的功能......但谢谢anwyay: ) – 2012-03-30 06:51:28

0

我所做的:

$.mobile.changePage('login.html', {changeHash:false}); 

changeHash(默认值:true)类型:Boolean决定是否在 地址栏中的哈希应该更新。这具有创建新的 浏览器历史记录条目的效果。这也意味着如果设置为false, 传入页面将替换浏览器历史记录中的当前页面,因此 用户正在浏览的页面将无法通过浏览器的“返回”按钮到达 。

相关问题