Ajax добавил, что HTML не наследует стили страниц - jQueryMobile - PullRequest
2 голосов
/ 01 февраля 2012

Так что я довольно новичок в jQueryMobile, но мне удалось создать панель поиска, которая отображает результаты, когда вы печатаете, используя Ajax, который работает просто отлично, но проблема в том, что стили CSS не применяются к ajax'd content.

Есть ли способ заставить CSS либо обновлять, либо перезаписывать, либо просто применить CSS к новому ajax'd html?

1 Ответ

1 голос
/ 01 февраля 2012

Улучшение новой разметки
Плагин страницы отправляет событие pagecreate, которое большинство виджетов используют для автоматической инициализации. Как долго поскольку ссылка на скрипт плагина виджета будет автоматически улучшена любые экземпляры виджетов, которые он находит на странице.

Однако, если вы генерируете новую разметку на стороне клиента или загружаете контент через Ajax и внедрить его в страницу, вы можете вызвать событие создания обрабатывать авто-инициализацию для всех плагинов, содержащихся в новая разметка. Это может быть запущено на любом элементе (даже на странице сам div), избавляя вас от необходимости вручную инициализировать каждый плагин (кнопка просмотра списка, выбор и т. д.).

Например, если был загружен блок разметки HTML (скажем, формы входа) через Ajax вызвать событие create для автоматического преобразования все содержащиеся в нем виджеты (в данном случае входы и кнопки) в расширенные версии. Код для этого сценария будет:

$( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" );

Создание и обновление: важное различие
Обратите внимание, что между событием создания и методом обновления существует важное различие что некоторые виджеты имеют. Событие создания подходит для улучшения raw разметка, которая содержит один или несколько виджетов. Метод обновления должен быть используется в существующих (уже улучшенных) виджетах, которыми манипулировали программно и нужно обновить интерфейс, чтобы соответствовать.

Например, если у вас была страница, на которой вы динамически добавляли новый неупорядоченный список с атрибутом data-role=listview после страницы создание, инициирование создания на родительском элементе этого списка будет превратить его в виджет в стиле списка. Если бы больше элементов списка было затем программно добавляется, вызывая метод обновления списка обновит только эти новые элементы списка до расширенного состояния и оставит существующие элементы списка не тронуты.

jQM Документы здесь:

Обновление элементов формы
В jQuery Mobile некоторые улучшенные элементы управления формой просто оформляются (вводятся), а другие - настраиваемые. элементы управления (выбор, ползунки), построенные и синхронизированные с родной контроль. Для программного обновления элемента управления формы с JavaScript, сначала манипулируйте собственным элементом управления, а затем используйте обновление способ сказать расширенному элементу управления обновить себя, чтобы соответствовать новому государство. Вот несколько примеров того, как обновить общие элементы управления формой, затем вызовите метод обновления:

Флажки:

$("input[type='checkbox']").prop("checked",true).checkboxradio("refresh");

Радио:

$("input[type='radio']").prop("checked",true).checkboxradio("refresh");

Выбор:

var myselect = $("#selectfoo");
myselect[0].selectedIndex = 3;
myselect.selectmenu("refresh");

ползунки:

$("input[type='range']").val(60).slider("refresh");

Переключатели (они используют ползунок):

var myswitch = $("#selectbar");
myswitch[0].selectedIndex = 1;
myswitch.slider("refresh");

jQM Документы здесь:

...