在IE中使用jQuery UI Selectmenu插件时出错

时间:2011-01-03 19:00:20

标签: javascript jquery html jquery-ui jquery-plugins

jQuery UI Selectmenu插件,在此演示:http://jquery-ui.googlecode.com/svn/branches/labs/selectmenu/index.html

我对这个插件有几个问题。我将专注于只在IE中发生的一个。

我有html:

<label for="SearchState"></label>
<select style="width: 160px" name="SearchState" id="SearchState">
   <option>CT</option>
   <option>MA</option>
   <option>NH</option>
</select>

和jQuery:

$('select#SearchState').selectmenu();

在Firefox中可以正常工作,但是在IE中我在加载时遇到错误:

  

"Invalid argument" - jquery 1.4.2 Line: 4618

然而,新风格的selectmenu与原始设置一起显示(这是设计,但原始的html选择菜单应该被隐藏),但是当我点击一个选项时,我会得到以下几个错误:

  

“this._optionList”为null或不是对象 - ui.selectmenu.js第400行

为什么这在IE中不起作用?

ui.selectmenu.js的第399-401行

_selectedOptionLi: function() {
    return this._optionLis.eq(this._selectedIndex());
},

jquery-1.4.1.js的第4615-4622行

name = name.replace(rdashAlpha, fcamelCase);

if ( set ) {
    style[ name ] = value;
}

return style[ name ];

3 个答案:

答案 0 :(得分:3)

我证实了这种行为。我在this jsfiddle中重新创建了它。将jQuery升级到1.7.2后,它没有给出这些错误。在this jsfiddle中是固定版本。请注意,我还将jQuery UI(因为jsFiddle)升级到jQuery UI 1.8.18,但问题出在您正在使用的jQuery版本中。我建议您更新到jQuery and jQuery UI的最新(稳定)版本,然后选择菜单(JavaScriptCSS)。

答案 1 :(得分:1)

您使用的是旧的jQuery UI labs 插件,看起来好像有一段时间没有使用过。

在github https://github.com/fnagel/jquery-ui上看看这个分叉。

  

用于推动某些插件开发的jQuery UI分支。目前,您将找到:Selectmenu的最新版本(最初由灯丝组)和jQuery UI选项卡的可访问版本。请检查分支选择菜单和标签可访问性

答案 2 :(得分:0)

如果您链接的演示在IE中工作,作为第一步,我会尝试使用same version of selectmenu that the demo is。如果这样做,你知道它是插件的问题。