Phill Pafford
Phill Pafford

Reputation: 85378

JQM (jQueryMobile) Push last page out of DOM on changePage()

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:

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);

Upvotes: 7

Views: 10727

Answers (2)

Ryan Tofteland
Ryan Tofteland

Reputation: 913

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

Upvotes: 0

Mark Coleman
Mark Coleman

Reputation: 40863

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.

Upvotes: 11

Related Questions