JQuery Mobile: как сделать рендеринг в окне выбора? - PullRequest
6 голосов
/ 29 января 2011

Первый раз, когда я загружаю страницу, поле выбора пусто:

<select name="secondaryTitle" id="secondaryTitle"></select>

Затем я делаю вызов ajax и получаю данные json для вышеуказанного поля выбора.

arrtitle = objSecTitle.getAllSecondaryTitle(serviceId); // its an ajax call, that returns json object
var obj = jQuery("#secondaryTitle");
removeAllOptions(obj);
for(i=0;i<arrtitle.length;i++)
{
    obj.options.length=obj.options.length + 1;
    obj.options[obj.options.length - 1].text = arrtitle[i][1];
    obj.options[obj.options.length - 1].value = arrtitle[i][0];
}
function removeAllOptions(selectbox){
    var i;
    for(i=selectbox.options.length-1;i>=0;i--)
    {
        selectbox.remove(i);
    }
}

Мой вызов ajax идеален. Выше код также меняет выпадающие элементы. Но пользовательский интерфейс не будет обновляться, когда мы будем использовать jQuery Mobile, так как он показывает / скрывает другой div для всплывающего окна выбора.

Ответы [ 2 ]

14 голосов
/ 29 января 2011

Не бери в голову!

Я должен проверить документацию правильно:

//refresh value         
$('#select').selectmenu('refresh');

//refresh and force rebuild
$('#secondaryTitle').selectmenu('refresh', true);
0 голосов
/ 06 декабря 2012

Не спрашивайте меня, почему, но это работало только для меня, пока я не использовал двойные кавычки -> "<- для всех строк, участвующих в этой инструкции: </p>

$ (" # secondTitle "). Selectmenu ("refresh", true); // работает

У меня было так:

$ ('# primaryTitle'). selectmenu ('refresh', true); // не работает

и это не сработало: S: S: S

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...