переход на предыдущую страницу отсутствует в истории с jquery mobile - PullRequest
3 голосов
/ 04 января 2012

Я реализую переопределение для кнопки «Назад» в jquery mobile.Так что я могу правильно справиться с возвратом вверх по дереву, если посещает закладки, нацеленные на лист дерева.

Кнопка возврата в этом случае обычно ничего не делает, потому что $.mobile.urlHistory.stack содержит только текущую страницу.Я собираюсь сделать так, чтобы changePage на странице, которую я программно определил, является родительской для текущей страницы.

В данный момент я экспериментирую с переопределением базового поведения кнопки возврата

$('a[data-rel="back"]').live('tap',handleBackButton).live('click',handleBackButton)

function handleBackButton(e) {
  var currenturl = $.mobile.activePage.data('url');
  var backurl = backUrlFromTree(currenturl);

  // handle back tree navigation ourselves
  // if we're still trying to go back but there's nowhere to go
  if($.mobile.urlHistory.activeIndex === 0) {
    e.preventDefault();
    e.stopImmediatePropagation();

    console.log('no history to navigate');
    console.log('going back to ' + url);

    $.mobile.changePage(url, {
      transition: "slide",
      reverse: true
    });

    $.mobile.urlHistory.clearForward();
  }
}

Проблема здесь в том, что changePage вызывает urlHistory.addNew, который толкает страницу в стек, что приводит к неправильному упорядочиванию истории, что я на самом деле хочу, чтобы addNew сделал, - это переместить страницу в начало стека.1011 *

Есть мысли?Я думал, что мне, вероятно, придется расширить методы changePage и | или addNew.

...