如何使用jquery打开select元素

Par*_*g A 9 javascript jquery

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

    <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>
Run Code Online (Sandbox Code Playgroud)

如果可能使用jquery或javascript,请告诉我

kyl*_*rns 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'); 
});
Run Code Online (Sandbox Code Playgroud)

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

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

  • 仅适用于WebKit浏览器(Safari,Chrome).在Firefox,Opera和IE中不起作用.我刚试过它. (12认同)
  • 在任何浏览器中都不再起作用. (4认同)

Jor*_*tad -3

$(document).ready(function(){  
  $('#selId').on('click',function(){
     //do stuff here
  });
  $('#selId').trigger('click');
});
Run Code Online (Sandbox Code Playgroud)

这应该有效。

更新:

$(document).ready(function(){  
  $('#selId').click(function(){
     //do stuff here
  });
  $('#selId').click();
});
Run Code Online (Sandbox Code Playgroud)

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