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 ];
答案 0 :(得分:3)
我证实了这种行为。我在this jsfiddle中重新创建了它。将jQuery升级到1.7.2后,它没有给出这些错误。在this jsfiddle中是固定版本。请注意,我还将jQuery UI(因为jsFiddle)升级到jQuery UI 1.8.18,但问题出在您正在使用的jQuery版本中。我建议您更新到jQuery and jQuery UI的最新(稳定)版本,然后选择菜单(JavaScript和CSS)。
答案 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。如果这样做,你知道它是插件的问题。