不要使用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