Динамическое изменение навигационной панели
Когда пользователь меняет настройки, я хочу изменить панель навигации на главной странице. Я имею:
<section id="main" data-role="page">
<nav data-role="navbar">
<ul></ul>
</nav>
</section>
И я заполняю неупорядоченный список с помощью JavaScript, но он теряет свой стиль CSS.
В: Какое событие я использую, чтобы убедиться, что навигационная панель оформлена правильно, когда пользователь возвращается со страницы "Настройки" и снова видит главную страницу?
В: Какое событие я должен вызвать, чтобы обновить главную страницу после того, как пользователь нажмет кнопку "Вернуться на главную страницу"?
Редактировать:
На самом деле, список заполняется и на pageinit.
1 ответ
Q1.
Если вы заполняете свою панель навигации во время создания страницы, создания страницы или страницы, вам не нужно ее стилизовать. Если вы делаете это во время более поздних событий, сделайте это с этим:
$('#pageID').trigger('pagecreate');
Это приведет к полному рестайлингу страницы, включая нижний колонтитул и верхний колонтитул. Если вам нужно только изменить стиль содержимого страницы, используйте это:
$('#pageID').trigger('create');
Узнайте больше об этом в моей другой статье: /questions/42228168/jquery-mobile-uluchshenie-razmetki-dinamicheski-dobavlyaemogo-kontenta/42228176#42228176
Q2.
В этом случае вы можете предотвратить кеширование главной страницы.
Официальная документация: http://jquerymobile.com/demos/1.2.0/docs/pages/page-cache.html
Чтобы предотвратить кэширование страниц, используйте атрибут data-dom-cache = "false":
<div data-role="page" id="dontCacheMe" data-dom-cache="false">
Но, к сожалению, если главная страница является первой страницей, которая будет показана, или, по крайней мере, частью первого HTML-кода, то обналичивание не может быть предотвращено.
В этом случае очистите каждый элемент, имеющий сгенерированное содержимое, и снова запустите создание страницы.
РЕДАКТИРОВАТЬ:
Я забыл упомянуть. Динамическое добавление элементов navbar содержит ошибки и работает не так, как задумано. Некоторое время назад я создал пример, как динамически добавлять элементы navbar, вы можете найти его здесь: http://jsfiddle.net/Gajotres/V6nHp/
Это и многое другое можно найти в моей другой статье, или это можно найти здесь.