この場合、イベントを使用しないでくださいpagebeforeshow
。これは、トリガーする最後のページイベントの1つです。その時点で、2番目のページがすでに作成されており、表示する準備ができています。これは、2番目のページが作成される前に実行する必要があります。
最初に私の他の記事を見てください。そこには、1ページから2ページへの移行中のページイベントのリストがあります。または、ここで見つけることができます。
問題について、問題を修正するために使用できるコードを次に示します。これは、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/、次のボタンをクリックしてページ変更をトリガーする必要があります。