Подтвердить что ты не робот

Как перемещаться по одной странице с помощью $.mobile.changePage

Вся документация JQuery Mobile, которую я могу найти о навигации в обратном порядке, предполагает, что я собираюсь сделать это с помощью привязанного тега и предлагаю добавить тэг data-rel="back" в тег.

Я не перемещаюсь из тега, я смешиваю с PhoneGap, что означает, что я вызываю функции javascript, такие как PhoneGap.something(goForwardOnSuccess,goBackwardsOnFailure);

где

function goFowardOnSuccess()
{
    $.mobile.changePage('#next', { transition: 'pop' });
}
function goBackwardOnFailure()
{
    $.mobile.changePage(/* I HAVE NO IDEA WHAT GOES HERE */);
}

Одна из основных вещей, для которых я использую такую ​​штуку, - это "Экран" Занято делать что-то в собственном коде, не прикасайтесь ко мне... ", экран" Щелкать экран "с" загружаемым "материалом, а затем закрывать его в функциях завершения.

Тем не менее, я нахожу, когда я пытаюсь сделать это с помощью кнопки на экране, которую я "вставил" на место, я снова возвращаюсь на домашнюю страницу (возвращается два уровня).

Документация безумно расплывчата в том, как перемещаться назад от чистого javascript. Любые подсказки были бы очень приятными.

Заметьте также, что я, как правило, вывожу эти занятые экраны извне, поэтому явное кодирование перехода на экран, который я хочу, на самом деле не вариант.

4b9b3361

Ответ 1

В документации это определенно неясно, но есть небольшие намеки на него.

Попробуйте использовать:

$.mobile.back();

Ответ 2

имеет смысл использовать data-rel="back" для чего-то подобного: <a href="#" data-rel="back" ...

но лучше использовать history.back(); внутри javascript code blog i.e

.....
.....  
    var cId = $(this).val();
    // do something with control ID then
.....
.....
    goBackParent();
}
function goBackParent(){
     history.back();
}

Ответ 3

Почему бы просто не использовать data-rel="back" как атрибут вашей кнопки "Назад", это заставит пользователя вернуться на 1 страницу.

Также эквивалентно history.back()

Ответ 4

Вы возвращаетесь "двумя уровнями", потому что если вы плавно сбрасываете changePage с помощью

$.mobile.changePage('#next', { transition: 'pop' });

и опустить все остальные параметры, вы запускаете две функции:

  • changePage
  • hashChange

Обычно при регулярном переходе хеш-элемент блокируется, а при обратных переходах переменная должна блокироваться (не уверен здесь...). Таким образом, в вашем случае у вас есть (хотите) hashChange и нежелательный (changePage) переход.

Проверьте JQM docs для параметров, которые вы можете передать в своем вызове changePage или посмотрите в исходном коде 1.0 # 3140 для всех Доступные Варианты. Я бы попробовал также передать changeHash: false или fromHashChange: true в вашем вызове функции и посмотреть, что произойдет.

Если вы хотите копать глубже, вам придется искать ignoreNextHashChange и как его значение изменяется, хотя JQM.

Ответ 5

Вызов history.back() будет выполнен.

Ответ 6

Добавить changeHash: true, от которого вы перенаправляете. И затем используйте 'history.back()' или 'history.go(-1)' с вашей текущей страницы. Он вернет вам только 1 страницу.

$.mobile.changePage("yourpage.html",{ transition: "flip", changeHash: true});