У меня есть окно поиска, которое я выскакиваю и заполняю шаблонами jquery После того, как они сделали выбор, я установил значение на текущей странице. Поэтому мне не нужны хэш-теги или что-то подобное, мне просто нужен всплывающий диалог, который я могу открывать и закрывать программно. В настоящее время я открываю диалог с
$.mobile.changePage(dialog, { transition: "slide", changeHash: false });
и закрываем его
dialog.dialog('close');
Однако в некоторых случаях (при переходе на страницу) закрытие диалогового окна обновляет текущую страницу.
Есть ли лучший способ взаимодействия с этим?
Обновление:
Кажется, я понял, что происходит. Поэтому по какой-то причине jquery mobile обычно хранит в DOM 2 страницы, одна из которых невидима, чтобы убедиться в этом, запустив в консоли $ ('[data-role = page]'). Одна страница - это страница, на которой вы находитесь, а другая - страница, на которую вы изначально перешли. Не совсем уверен, почему они решили это сделать, но там у вас есть.
Таким образом, они рассматривают диалоги как навигацию по страницам с другим переходом, даже если диалог уже находится в DOM. Поэтому, если вы идете прямо на страницу и затем запускаете диалоговое окно, изменение текущей страницы и ее закрытие работает нормально - потому что исходная страница всегда загружается в DOM. Однако, если вы переходите на другую страницу, затем перейдите на страницу, которая вызывает диалоговое окно, и, затем, откройте диалоговое окно, он уничтожит текущую страницу, так что страницы в DOM будут начальной и диалоговым. В этом случае он полностью перезагружает страницу запуска диалога, и у вас никогда не будет возможности внести какие-либо изменения.
Jeez. Как мне напрямую взаимодействовать с виджетом диалога jqm?