jquery mobile предотвращает изменение страницы в зависимости от вызывающей страницы - PullRequest
1 голос
/ 08 марта 2012

Я пытаюсь предотвратить изменение страницы в jquery mobile в зависимости от того, на какой странице в данный момент находится пользователь, но я не знаю, что находится в объекте data.options. Поэтому в основном мне нужно сказать, если пользователь собирается использовать index.html, а вызывающей страницей является example.html, тогда запретите использование по умолчанию.

$(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();
  }
});

1 Ответ

15 голосов
/ 08 марта 2012

Вы действительно хотите использовать событие pagebeforechange.

$(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');
        }            
    }
});

Я создал образец здесь http://jsfiddle.net/kiliman/zMnUM/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...