2014-09-05 136 views
0

我在使用jQuery Mobile + Phonegap進行頁面導航時遇到了問題。 我試圖複製Android堆棧導航。Jquery Mobile「Stack」導航問題

這裏的情況:

用戶沒有登錄,並在主頁

  1. 點擊「操作外」,需要被記錄下來。
  2. 顯示登錄頁面。
  3. 顯示「動作A」頁面。

問題是: 當用戶按下後退按鈕時,它應該返回到主頁面而不是登錄頁面。

但是 「堆」 在歷史上是這樣的:

主要|登錄|操作外

我試圖做的:

// return from Login page to Main: 
history.back(); // $.mobile.back(); works the same way in this case. 

// then go to Action A page: 
$.mobile.changePage(pageA); 

但「changepage」是如此這般到該動作的頁面,然後返回到登錄頁面中的「後退」指令後執行。

在Android上,這是一項非常簡單的任務。 :(

+0

查看changehash選項:http://api.jquerymobile.com/jQuery.mobile.changePage/ – ezanker 2014-09-05 21:09:22

回答

0

只是不叫 「回」,並導航到下一個頁面。

在「 onBackPressed「事件處理程序檢查JQM堆棧並使用history.go(-2)。例如:

var index = $.mobile.navigate.history.activeIndex - 1; 
if (index >= 0) { 
    var backStep = -1; // back one by default 
    var hash; 
    while (index > 0) { 
     hash = $.mobile.navigate.history.stack[ index ].hash; 

     if (hash == "#pageLogin") { 
      backStep--; 
     } 

     index--; 
    } 

    window.history.go(backStep); 
} 
0

您可以使用

window.history.go(-2) //Go two pages back 

或相同的方法兩次

history.back(); //Go one page back 
history.back(); //Go another one page back