Установка выбора по умолчанию в меню выбора в JQuery Mobile?

Я пытаюсь установить выбор по умолчанию в меню выбора в JQuery Mobile. Документы имеют это:

   var myselect = $("select#foo");
   myselect[0].selectedIndex = 3;
   myselect.selectmenu("refresh");

Который я добавил прямо под тем, где я создаю меню, но затем, когда я запускаю код, я получаю эту ошибку:

throw "не может вызвать методы" + name + "до инициализации; " + "попытался вызвать метод" + options + "'";

Не уверен, что делать на этом этапе...

3 ответа

Решение

Вы пытаетесь манипулировать объектами DOM с помощью еще не загруженного JavaScript. Переместите javascript за форму, которой вы пытаетесь манипулировать, или добавьте свой код в функцию, которая выполняется при загрузке документа.

Например:

$('#PAGE').live('pagecreate',function(event){
    var myselect = $("select#foo");
    myselect[0].selectedIndex = 3;
    myselect.selectmenu("refresh");
});

где PAGE является идентификатором загружаемой страницы, которая содержит меню, которым вы хотите управлять.


РЕДАКТИРОВАТЬ:

Я обновил пример для использования события создания страницы JQuery Mobile на основе комментария jinyuan относительно событий JQuery Mobile.

Как функция jQuery:

$.fn.jqmSelectedIndex = function(index){
    var self = $(this)
    self
        .prop('selectedIndex', index)
    .selectmenu("refresh");

    return self;
}

$("select#foo").jqmSelectedIndex(3);

Это не подтверждено, но работает.

Оно работает. может быть, вы захотите предоставить более подробную информацию.

http://jsbin.com/ekayu3/2

Другие вопросы по тегам