2015-06-28 35 views
0

至少某些手機在打開select元素時顯示本機彈出式菜單,而不是默認下拉菜單。有沒有一種方法可以手動觸發來自Javascript的選擇彈出窗口,而無需使用select元素?是否有可能以編程方式觸發移動設備的本機選擇彈出窗口?

我試過有一個隱藏的select元素,並在它需要用戶做出選擇時觸發點擊事件,但這似乎不起作用。

看起來工作的是讓選擇透明(opacity: 0)並將其覆蓋在應該觸發選擇彈出窗口的元素的頂部。然而,這感覺很不好,並且需要其他不必要的代碼來保持懸停/點擊功能。

回答

0

試試這個:

<html> 
<head> 
    <style> 
     html, body 
     { 
      margin :0; 
      padding :0; 
     } 
     .hiddenElem 
     { 
      position :absolute; 
      top  :-1000px; 
      left  :-1000px; 
     } 
    </style> 
</head> 
<body> 
    <div class="hiddenElem"> 
     <select name="selectField" id="selectField"> 
      <option value="1">One</option> 
      <option value="2">Two</option> 
     </select> 
    </div> 
    <script type="text/javascript" src="js/jquery.min.js"></script> 
    <script type="text/javascript"> 
     setTimeout(function() 
     { 
      var element=$("#selectField")[0], worked=false; 
      if(document.createEvent) 
      { 
       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) 
      { 
       worked=element.fireEvent("onmousedown"); 
      } 
      if(!worked) 
      { 
       alert("It didn't worked in your browser."); 
      } 
     }, 100); 
    </script> 
</body> 
</html> 

參考:How to open the select input using jquery

+0

感謝您的回答,但不幸的是這沒有工作,至少不是我的測試設備(鉻43.0.2357.93在Android 4.2上運行。 2)。 – Schlaus

+0

因爲https://www.chromestatus.com/features/57188​​03933560832 – Hampus

相關問題