4

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

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

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

throw "初始化前不能调用"+name+"上的方法;"+"试图调用方法'"+options+"'";

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

4

3 回答 3

7

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

例如:

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

PAGE您正在加载的页面的 id 在哪里,其中包含您要操作的菜单。


编辑:

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

于 2011-06-17T03:50:33.880 回答
3

作为 jQuery 函数:

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

    return self;
}

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

这未经验证但有效。

于 2012-01-03T21:39:56.410 回答
1

有用。也许您可能想提供更多详细信息。

http://jsbin.com/ekayu3/2

于 2011-06-17T03:35:58.460 回答