Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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:

  • 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);
like image 435
Phill Pafford Avatar asked Apr 20 '11 23:04

Phill Pafford


1 Answers

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.

like image 71
Mark Coleman Avatar answered Oct 20 '22 10:10

Mark Coleman