jQuery mobile: помните переменную страницы перед

Одна кнопка должна перенаправить либо на страницу AAA, либо на страницу BBB. Это решение должно зависеть от выбора кнопок на странице раньше.

Страница 1: #home

  • Кнопка A: ссылки на #setpage
  • Кнопка B: ссылки на #setpage

Страница 2: #setpage

  • Вход: пользователь может установить что-то
  • Кнопка: только одна кнопка (ссылки на страницу #AAA или страница #BBB)

Страница 3: #AAA

  • Пользователь должен быть здесь, если кнопка A нажата.

или

Страница 4: #BBB

  • Пользователь должен быть здесь, если кнопка B нажата на странице.

Я думаю, я могу сделать это с помощью localStorage моего телефона / браузера (я использую jQM + PhoneGap), но это лучшее решение или есть лучший способ?

Если это одностраничное приложение, вы можете просто переключить HREF кнопки setpage при нажатии на кнопки A и B на главной странице.

Вот ДЕМО

$(document).on("pageinit", "#Home", function(){ $('.btnAB').on("click", function(e){ var id = $(this).prop("id"); if (id === 'btnB'){ $('#btnSetpage').prop('href', '#BBB'); } else { $('#btnSetpage').prop('href', '#AAA'); } }); }); 

В приведенном выше скрипте обрабатывается событие click из двух кнопок (они имеют один и тот же class). Он видит, какая кнопка была нажата, а затем устанавливает href одной кнопки на установочной странице.

 

Home

A B

setpage

AAA

I am AAA Home

BBB

I am BBB Home

В дополнение к ответу @ezanker вы можете получить все данные, связанные с нажатой кнопкой, а также предыдущие и следующие страницы на pagebeforechange .

 $(document).on("pagebeforechange", function (event, data) 

Эти данные могут быть получены из объекта данных . Например, данные щелчка / связанные кнопки извлекаются из объекта data.options.link . предыдущая страница data.options.fromPage и следующая страница data.toPage .

Это событие дважды срабатывает при переходе, для текущей страницы и страницы, к которой она движется.

 $(document).on("pagebeforechange", function (e, data) { /* when webpage is first initialized, .link and .toPage are undefined */ if (data.options.link && data.toPage) { if (data.toPage[0].id == "setpage") { var button = data.options.link[0].text; /* for demo */ $("#setpage [data-role=content]").html("Clicked button: " + button); } } }); 

демонстрация