如何在javascript中自动扩展html select元素

我的菜单中有一个(隐藏的)html选择对象附加到菜单按钮链接,因此单击该链接会显示该列表,以便您可以从中进行选择.

当您点击该按钮时,它会调用一些javascript来显示< select>.点击< select>隐藏列表.我真正想要的是使< select>看起来完全展开,就像你点击了“向下”箭头一样,但是我无法使其正常工作.我已经尝试了很多不同的方法,但无法取得任何进展.我现在正在做的是:

<li>
    <a href="javascript:showlist();"><img src="/images/icons/add.png"/>Add favourite</a>
    <select id="list" style="display:none; onblur="javascript:cancellist()">
    </select>
</li>

// in code
function showlist() {
    //using prototype not jQuery
    $('list').show();  // shows the select list
    $('list').focus(); // sets focus so that when you click away it calles onblur()
}

>我试过调用$(‘list’).click().
>我试过设置onfocus =“this.click()”
但在这两种情况下我都会得到

Uncaught TypeError: Object # has no method ‘click’

这是特殊的,因为link text说它支持标准功能.

我已经尝试设置.size = .length,但是没有相同的外观(当你点击打开元素时,它会漂浮在页面的其余部分.)

有没有人有什么建议?

解决方法:

我遇到了同样的问题,想在我的应用程序中实现键盘导航,但选择的元素没有扩展,因此使用键盘的人将失去功能.我创建了ExpandSelect()函数,它模拟鼠标点击选择元素,它通过创建另一个< select>来实现.通过设置size属性可以同时显示多个选项,代码托管在Google Code网站上,ExpandSelect.js只有4 KB,请参见截图并在此处下载:

http://code.google.com/p/expandselect/

截图

在模拟点击时,GUI有一点点差别,但这并不重要,请亲自看看:

鼠标点击时:

MouseClicking http://expandselect.googlecode.com/hg/mouseclick_manyoptions.jpg

模拟点击时:

EmulatingClicking http://expandselect.googlecode.com/hg/emulateclick_manyoptions.jpg

项目网站上有更多截图,链接如上.

上一篇:javascript 变量声明有var与无var 的区别


下一篇:Scala Actor并发编程入门示例