Установка выбора по умолчанию в меню выбора в JQuery Mobile? - PullRequest
4 голосов
/ 09 июня 2011

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

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

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

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

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

Ответы [ 3 ]

7 голосов
/ 17 июня 2011

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

Например:

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

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


EDIT:

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

2 голосов
/ 04 января 2012

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

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

    return self;
}

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

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

1 голос
/ 17 июня 2011

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

http://jsbin.com/ekayu3/2

...