2012-03-08 9 views
1

jquery mobileのページ変更を防止しようとしていますが、現在どのページが表示されているのかによって異なりますが、data.optionsオブジェクトの内容はわかりません。だから、基本的に私は、ユーザーがindex.htmlに行くと呼び出しているページがexample.htmlである場合、デフォルトを防ぐことを言う必要があります。jquery mobileは呼び出しページに応じてページを変更しないようにします

$(document).bind("pagebeforeload", function (event, data) { 
    var toPage = data.toPage; 
    if (toPage == 'undefined') { 
    return; 
    } else { 
    //need additional condition to see current page in the data.objections object? 
    if (toPage == '/android_asset/www/index.html'); 
    event.preventdefault(); 
    } 
}); 

答えて

15

実際にはpagebeforechangeイベントを使用します。私はjQM 1.3.2(デスクトップ上のChromeで実行されている)で、データ引数の.toPageプロパティは、URLが、オブジェクト、および名前ではないことをここにhttp://jsfiddle.net/kiliman/zMnUM/

+0

注サンプルを作成しました

$(document).bind('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 === '#page1' && to === '#page3') { alert('Cannot change to page 3 from page 1'); e.preventDefault(); // remove active class on button // otherwise button would remain highlighted $.mobile.activePage .find('.ui-btn-active') .removeClass('ui-btn-active'); } } }); 

ページの[data] to [0]。id – Wytze

+0

私はそれが最初の呼び出しであり、2番目の呼び出しであるオブジェクトであると思います。このイベントは、ナビゲーションごとに2回呼び出されます。 –

関連する問題