2013-02-17 28 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

相关问题