9

我有一个选择元素如下。我想打开它而无需用户单击它。

    <select id="selId" class="pos_fixed">
       <option value="volvo">Option1</option>
       <option value="saab">Option2</option>
       <option value="mercedes">Option3</option>
       <option value="audi">Option4</option>
    </select>

请让我知道是否可以使用 jquery 或 javascript

4

5 回答 5

20

您将传递一个 CSS 选择器openSelect(),它会为您打开select元素。

var openSelect = function(selector){
     var element = $(selector)[0], worked = false;
    if (document.createEvent) { // all browsers
        var e = document.createEvent("MouseEvents");
        e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        worked = element.dispatchEvent(e);
    } else if (element.fireEvent) { // ie
        worked = element.fireEvent("onmousedown");
    }
    if (!worked) { // unknown browser / error
        alert("It didn't worked in your browser.");
    }   
}

$(function(){ // when DOM is ready
   // open .select element
   openSelect('.select'); 
});

这是一个小提琴:http: //jsfiddle.net/Z48wF/1/

资料来源:如何使用 jquery @stackoverflow.com打开选择输入

于 2013-04-22T22:14:52.697 回答
1

你可以在这里找到一个类似的问题:How can you programmatically tell an HTML SELECT to drop down(例如,由于鼠标悬停)?

我不认为有一个单一的解决方案可以在每个浏览器中运行。

我可以确认使用document.createEvent()and .dispatchEvent()(如上述链接所述)在 WebKit 浏览器(Safari、Chrome)中效果很好,但在 Firefox、Opera 和 IE 中效果不佳。

但是,您可以尝试组合此处列出的不同解决方案。

于 2013-04-22T22:17:52.580 回答
0

我这里有这个问题的完整解决方案是否可以使用 JS 打开一个 HTML 选择以显示其选项列表?. 在此方案中,选择可以正确、轻松地打开,具有所有功能并保留页面布局。该解决方案安全、简单且与 Internet Explorer、FireFox 和 Chrome 兼容。

谢谢!

于 2014-01-23T19:16:20.507 回答
-3

您可以使用以下脚本

<script>
    function(){
        selectbox = $(select-selector)[0]
        selectbox.size = selectbox.options.length;
    }
</script>
于 2014-11-03T12:31:46.707 回答
-3
$(document).ready(function(){  
  $('#selId').on('click',function(){
     //do stuff here
  });
  $('#selId').trigger('click');
});

这应该有效。

更新:

$(document).ready(function(){  
  $('#selId').click(function(){
     //do stuff here
  });
  $('#selId').click();
});

与其他答案非常相似,但也应该这样做,而不是“单击”,您可以尝试“聚焦”

于 2013-04-22T22:05:54.373 回答