2013-05-16 27 views
2

你能幫我嗎?我想用JS打開一個選擇框。但它在Firefox中不起作用。不知道有人幫助我如何解決?用javascript打開selectBox元素?

<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> 
<span class ="xxx">open</span> 

jQuery(document).ready(function($) { 

    $(".xxx").on('click', function() { 
     openSelect($('#selId')); 
    }); 


    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."); 
     } 
    } 

}); 

DEMO - http://jsfiddle.net/uhYxf/

+0

可能的重複[如何以編程方式告訴HTML SELECT下拉(例如,由於鼠標懸停)?](http://stackoverflow.com/questions/249192/how-can-you-programmatically-tell -an-html-select-to-drop-down-for-example-due) –

回答

0

你將有一個很難執行此跨瀏覽器。我會選擇使用像select2Chosen這樣的選擇框插件,而不是使用html <select>元素。

但是,另一個更容易的選項是,單擊時更改select的size屬性的值大於1。這並沒有給出相同的感覺,但可能可能適合您的需求。

+0

謝謝 但Select2或Chosen生成div元素,但我需要SelectBox元素。沒有其他辦法了? – user2219071

+0

@ user2219071,你能解釋爲什麼你特別需要一個'