Как вручную вызвать jQuery mobile - PullRequest
1 голос
/ 31 января 2012

Моя HTML-страница прекрасно загружается, но у меня есть немного JavaScript, который добавляет несколько кнопок.jQuery Mobile не стилизует вновь созданные кнопки.

В: Как я могу снова запустить jQuery Mobile, чтобы вновь созданные кнопки были стилизованы в соответствии с атрибутом data-theme?

Ответы [ 2 ]

6 голосов
/ 31 января 2012

jQM Документы:

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

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

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

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

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

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

2 голосов
/ 31 января 2012

Я думаю, что вы ищете функцию .button(), которую вы можете передать строку refresh для обновления виджетов кнопок:

$('#my-new-button').button();//this will create a button

$('#my-old-button').button('refresh');//this will refresh a button

Филл показывает пример использования .trigger('create'), который такой жекак .button() для виджета кнопки.Каждый виджет имеет функцию, которую вы можете вызвать.Listview s использует функцию .listview() и т. Д.

...