1

所以,我有以下 HTML:

<div class="toolsIndexSelectContainer">
      <select id="Clients" class="toolsIndexSelect disableElement">
          <option>Item</option>         
          <option>Item 2</option> 
          <option>Item 3</option> 
      </select>
</div>

当我使用类 toolsIndexSelectContainer 单击周围的 div 时,我希望选择下拉并显示里面的项目。我有这个 jQuery:

$("div[class~='toolsIndexSelectContainer']").click(function () {
    $(this).children("select").focus();
});

但是,focus() 不起作用。我尝试了 click() 并且 Chrome 对我大发雷霆。有没有办法做到这一点?

4

3 回答 3

3

不,您不能在select元素上执行此操作。您不能触发以显示下拉选项。

select其他选择是下载一个基本上模拟功能的下拉插件。

这个ddSlick插件似乎模拟了选择框属性,并且还具有打开下拉选项的方法。

选择您可以使用插件的打开方法,例如$('#demoSetSelected').ddslick('open');打开下拉选项。

于 2013-02-14T19:41:36.393 回答
1

你可以使用类似 jquery Combobox的东西 。将选择转换为组合框。否则,这对于普通的选择元素是不可能的

于 2013-02-14T19:45:40.783 回答
1

这有点像黑客,但似乎有效:

$(".toolsIndexSelectContainer").click(function () {
    $(this).find("#Clients").focus();
});
$("#Clients").focus(function(){
    this.size=$(this).find('option').length;
}).blur(function(){
    this.size=1;
});

小提琴练习:http: //jsfiddle.net/As93t/

于 2013-02-14T20:06:34.390 回答