不要使用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/,您应该点击下一个按钮来触发页面更改。
感谢您的回复。我认为这可能有帮助。但我对此有疑问。即;你已经提到代码使用'pagebeforecreate'。但我只能看到'pagebeforechange'。 – 2013-02-17 13:20:15
感谢兄弟。感谢您的时间和精力。它解决了我的问题。 :) – 2013-02-17 13:45:36