在JQuery Mobile的选择菜单中设置默认选择?

时间:2011-06-08 23:52:49

标签: javascript jquery-mobile select-menu

我正在尝试在JQuery mobile的选择菜单中设置默认选择。文档有这个:

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

我在创建菜单的地方添加了,但是当我运行代码时出现此错误:

  

throw“在初始化之前无法调用”+ name +“上的方法;”+   “试图调用方法'”+选项+“'”;

此时不知道该怎么做......

3 个答案:

答案 0 :(得分:7)

您正在尝试使用尚未加载的javascript来操作DOM对象。将javascript移动到您尝试操作的表单之后,或者将您的代码更多地移动到在文档加载时执行的函数中。

例如:

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

其中PAGE是您要加载的页面的ID,其中包含您要操作的菜单。


编辑:

我根据jinyuan关于JQuery Mobile events的评论更新了示例以使用JQuery Mobile pagecreate事件。

答案 1 :(得分:2)

作为jQuery函数:

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

    return self;
}

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

这未经过验证但有效。

答案 2 :(得分:1)

它有效。也许你可能想提供更多细节。

http://jsbin.com/ekayu3/2