2013-02-17 33 views
2

我在使用Phonegap開發移動應用程序時遇到了問題& jQuery Mobile。取消頁面顯示事件並返回或重定向到jQuery Mobile

我有一個條目需要檢查,每次顯示頁面之前,比如page A。如果條件不成立,我將該應用導航到另一個頁面,例如page X。我使用頁面事件pagebeforeshow做到了這一點。

但我的問題是,...

即使我使用的pagebeforeshow事件,頁面page A是越來越所示。即; page A會顯示一次,然後應用導航到page X。如果條件不正確,我不希望顯示page A。我的意思是,取消該頁面顯示事件並轉到其他頁面。

希望你有我所問。

爲什麼是這樣?有沒有其他的方法可以讓我完美地完成我的任務。

任何形式的幫助將深受讚賞! :)

回答

1

不要使用pagebeforeshow事件在這種情況下,這是觸發的最後一個頁面事件之一。此時第二頁已經創建並準備顯示。這必須在第二頁即將創建之前完成。

首先看看我的其他ARTICLE,那麼您會在從第一頁到第二頁的過渡期間找到頁面事件的列表。或者可以發現HERE

現在就您的問題,您可以使用以下代碼來解決您的問題。它是利用pagebeforechange事件(這是一個頁面過渡期間觸發第一事件):

$(document).on('pagebeforechange', function(e, data){ 
    var to = data.toPage, 
     from = data.options.fromPage; 

    if (typeof to === 'string') { 
     var u = $.mobile.path.parseUrl(to); 
     to = u.hash || '#' + u.pathname.substring(1); 
     if (from) from = '#' + from.attr('id'); 

     if (from === '#index' && to === '#second') { 
      alert('Can not transition from #index to #second!'); 
      e.preventDefault(); 
      e.stopPropagation(); 

      // remove active status on a button, if transition was triggered with a button 
      $.mobile.activePage.find('.ui-btn-active').removeClass('ui-btn-active ui-focus ui-btn');; 
     } 
    } 
}); 

而這裏的現場jsFiddle例如:http://jsfiddle.net/Gajotres/3PhKZ/,您應該點擊下一個按鈕來觸發頁面更改。

+0

感謝您的回覆。我認爲這可能有幫助。但我對此有疑問。即;你已經提到代碼使用'pagebeforecreate'。但我只能看到'pagebeforechange'。 – 2013-02-17 13:20:15

+0

感謝兄弟。感謝您的時間和精力。它解決了我的問題。 :) – 2013-02-17 13:45:36

相關問題