我在使用Phonegap& amp;开发移动应用程序时遇到了问题。 jQuery Mobile。
我在每次显示页面之前都要检查一个条目,比如page A
。如果条件为假,我会将应用导航到另一个页面,例如page X
。我使用页面事件pagebeforeshow
做到了这一点。
但我的问题是......
即使我使用了pagebeforeshow
事件,也会显示页面page A
。即; page A
显示一次,然后应用导航到page X
。如果条件错误,我不希望显示page A
。我的意思是,取消该页面显示事件并转到其他页面。
希望你能得到我的要求。
为什么会这样?还有其他方法可以让我完美地完成任务。
任何形式的帮助都将深表感谢! :)
答案 0 :(得分: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/,您应该点击下一个按钮来触发页面更改。