在这种情况下不要使用pagebeforeshow
事件,这是最后触发的页面事件之一。此时第二页已经创建并准备好显示。这必须在第二页即将创建之前完成。
首先看看我的另一篇文章,在那里你会发现从第一页到第二页的转换过程中的页面事件列表。或者可以在这里找到。
现在关于您的问题,这里有一个代码,您可以使用它来解决您的问题。它正在使用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/,您应该单击下一步按钮来触发页面更改。