JQM (jQueryMobile) 在changePage() 上将最后一页从 DOM 中推出

发布于 2024-11-03 04:25:02 字数 1063 浏览 2 评论 0 原文

我注意到我刚刚查看的页面仍然在 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);

I notice that the page that I was just viewing is still in the DOM. Is there a way to remove the last page viewed after I transition to the new page using changePage()?

I have disabled all the back navigation as I don't want the use to go back to the last page when transitioning to the new page(s).

Any suggestions?

Flow of the site:

  • main page-> fill out info->submit on changePage()
  • next page-> fill out more info-> submit on changePage()
  • etc...

Once the page has been submitted I don't need it anymore

UPDATE:

Here is the first page:

<div data-role="page" 
     id="first_page" 
     data-theme="z" 
     data-backbtn="false" 
     data-url="first_page" 
     class="ui-page 
     ui-body-z">

It appends something to this when adding a new page:

<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">

Calling the live() like this:

// pageName[index] = next_page
$('#'+pageName[index]).live('pagecreate',function(event, ui){   
    $(ui.prevPage).remove();

using changePage() like this:

$.mobile.changePage('getNextPage.php?page='+pageName[index],'slide',false,false);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柒七 2024-11-10 04:25:02

不完全了解您的标记,我猜测您正在手动触发 changePage() 。如果是这种情况,您可以连接列出的事件之一 在这里

页面展示
在页面上触发
转换完成后显示。

$('div').live('pageshow',function(event, ui){
  $(ui.prevPage).remove();
});

jsfiddle 示例

Not exactly knowing your markup I am guessing you are triggering changePage() manually. If that is the case, you could wire up one of the events listed here.

pageshow
Triggered on the page being
shown, after its transition completes.

$('div').live('pageshow',function(event, ui){
  $(ui.prevPage).remove();
});

Example on jsfiddle.

铜锣湾横着走 2024-11-10 04:25:02

我不确定这是否与您的问题有关 - 但昨天有一个 JQM 修复程序与尝试删除 DOM 元素时出现的错误相关: https://github.com/jquery/jquery-mobile/commit/d4c7b5da66641a3fd081a834ca3d12a5518d499b

I'm not sure if it's related to your issue - but there was a JQM fix that went in yesterday related to errors when attempting to delete DOM elements: https://github.com/jquery/jquery-mobile/commit/d4c7b5da66641a3fd081a834ca3d12a5518d499b

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文