#jquery-mobile #query-string
#jquery-mobile #строка запроса
Вопрос:
Я создаю приложение PhoneGap с помощью jQuery Mobile, и у меня есть две страницы: одна с динамическим списком страниц, а другая с формой для редактирования или создания страницы. Они находятся в одном HTML-файле.
Нажатие на элемент списка передает ?действие = редактировать и нажатие кнопки «Добавить», которая у меня есть, передает ?действие = добавить строки запроса.
Вот jsfiddle для визуализации страниц
ПРИМЕЧАНИЕ: пример действует не совсем так, как живой код.
Я запускаю свое приложение на телефоне Android, и если я выполняю эти действия, в окне предупреждения отображается правильный запрос: —
- Нажмите кнопку добавить на странице списка
- Нажмите назад на страницу формы
- Щелкните ссылку изменить элемент списка на странице списка
Однако, если я сделаю это по-другому (сначала нажмите «Редактировать», затем кнопку «Добавить»), нажатие кнопки «Добавить» никогда не отобразит строку запроса add в окне предупреждения (пример jsfiddle всегда блокирует строку запроса первой нажатой ссылки, что еще хуже, чем живой код!)
Ответ №1:
Проблема здесь в том, что для этого вы используете несколько шаблонов. Если бы вы использовали это как отдельные страницы, это работало бы как обычно. Поскольку приложение состоит из нескольких приложений, лучшим способом справиться с этим было бы заставить ссылку запускать настройку некоторой глобальной переменной, которая отслеживает текущее состояние приложения.
Сделайте ссылки для редактирования такими
<a href="javascript:editPage(15)">Page 15</a>
Затем создайте сценарий примерно так:
var editingId = 0
function editPage(id){
editingId = id;
$.mobile.changePage("#editingPage");
});
$("div#editingPage").live("pageshow", function(){
loadDataForPage(editingId);
});