.widget ul:first
выберет первый элемент ul
, являющийся потомком элемента .widget
.Если вы хотите выбрать первый элемент списка в ul
, то вам нужно: .widget ul li:first
.
Сами формы не инициализируются jQuery Mobile, поэтому вместо ориентации на форму вам нужно нацелить наопределенные виджеты ввода и их инициализация.
Чтобы инициализировать группу элементов, вы можете выбрать их все и вызвать .trigger('create')
для них:
$('#commentform').find('input, textarea').trigger('create');
Это становится немного сложнее, когда вы хотите обновитьвиджеты, а не инициализировать их:
$('#commentform').find('input[data-type="slider"]').slider('refresh').end()
.find('input[type="text]').textinput('refresh').end()
.find('input[type="checkbox"], input[type="radio"]').checkboxradio('refresh');
Также вы можете оптимизировать свой код, связывая вызовы функций вместо повторного выбора одного и того же элемента (элементов) несколько раз:
$('.widget ul').attr('data-inset', 'true')
.attr('data-theme', 'd')
.attr('data-dividertheme', 'b')
.attr('data-role', 'listview')
.listview();
$('a.post-edit-link').attr('data-inline', 'true')
.attr('data-role', 'button')
.button();
Или выможет передать объект в .attr()
, чтобы установить все атрибуты в одном вызове функции:
$('.widget ul').attr({
'data-inset' : true,
'data-theme' : 'd',
'data-dividertheme' : 'b',
'data-role' : 'listview'
}).listview();
$('a.post-edit-link').attr({
'data-inline' : true,
'data-role' : 'button'
}).button();