Если вы хотите обновить виджет, который уже был инициализирован, вы можете обновить каждый тип виджета, используя соответствующую функцию:
$('.ui-btn').button('refresh');
Обратите внимание: я использовал класс .ui-btn
для выбора элементов кнопки, этот класс добавляется после инициализации кнопки, поэтому вы можете быть уверены, что обновляете уже инициализированный виджет кнопки.
Документы: http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-methods.html
Если вам нужно инициализировать виджет, который еще не инициализирован, то вы просто пропускаете 'refresh'
или используете .trigger('create')
:
$('[data-role="button"], button, input[type="button"], input[type="submit"]').not('.ui-btn').button();//or .trigger('create');
Обратите внимание, здесь я опускаю уже инициализированные виджеты, используя .not('.ui-btn')
, так что это будет только инициализировать неинициализированные виджеты. Если вы попытаетесь инициализировать виджет, который уже был инициализирован, вы получите сообщение об ошибке (то же самое, если вы попытаетесь обновить виджет, который еще не был инициализирован).
Обновление
Если ваш HTML выводится сервером, вы можете инициализировать виджеты перед добавлением их в DOM:
$.ajax({
...
success : function (serverResponse) {
var $out = $(serverResponse);
//if there is a container with elements inside it, use `.find()`,
//if all the elements are siblings at the top level then use `.filter()`
$out.find('a').button();
$('body').append($out);
}
});
Вы также можете использовать функцию .buttonMarkup()
для обновления виджетов кнопок: http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-options.html