#javascript #jquery #jquery-mobile
#javascript #jquery #jquery-mobile
Вопрос:
У меня возникает масса проблем с jQuery mobile selects и динамическими данными. Я хочу иметь выбор, который я могу включать и отключать и динамически заполнять.
<select id="selectMobileMenu" onchange="functionMobile()" style="width: 100%" class="mobileSelect"></select>
Проблема в том, что когда я сначала отключаю кнопку, чтобы предотвратить ошибку: Uncaught Error: cannot call methods on selectmenu prior to initialization; attempted to call method 'refresh'
я получаю 2 вложенных выборки внутри выборки.
selectMobile = $('[id=*selectMobileMenu]');
//Ensure the candidateListBox is defined
if (selectMobile.data("mobile-selectmenu") === undefined) {
// not initialized yet, lets do so
selectMobile.selectmenu('refresh'); //<--- Creates nested select
}
selectMobile.selectmenu(); //<--- Creates nested select
selectMobile.selectmenu('disable');
Кажется, что всякий раз, когда я вызываю selectmenu()
or selectmenu('refresh')
, я получаю вложенный select, что проблематично, потому что мне нужно вызвать selectmenu()
and selectmenu('refresh')
. Я мог бы попытаться удалить все классы ‘ui-disable` (которые работают на некоторых контроллерах, но не на других), но я чувствую, что это сделало бы невероятно хрупкий элемент управления еще более хрупким.
Идеи?
Комментарии:
1.
$('.ui-page-active').trigger('create')
?2. Я действительно решил это, попробовав
$('select#selectMobileMenu').selectmenu();
. Я должен обновить ответ, но я хотел посмотреть, есть ли другие способы
Ответ №1:
В итоге это сработало для меня:
selectMobile = $('select#selectMobileMenu');
if (selectMobile.data("mobile-selectmenu") === undefined) {
selectMobile.selectmenu('refresh');
}
selectMobile.selectmenu();
selectMobile.selectmenu('disable');