【问题标题】:Is it possible to programmatically trigger a mobile device's native select popup?是否可以以编程方式触发移动设备的本机选择弹出窗口?
【发布时间】:2015-06-29 00:06:22
【问题描述】:

打开选定元素时,至少某些电话显示了本机弹出窗口,而不是默认下拉弹出式。有没有办法在不实际使用选择元素的情况下从 Javascript 手动触发选择弹出窗口?

当我需要用户进行选择时,我尝试使用隐藏的选择元素并在其上触发点击事件,但这似乎不起作用。

似乎起作用的是使选择透明(opacity: 0)并将其覆盖在应该触发选择弹出窗口的元素之上。然而,这感觉很麻烦,并且需要其他不必要的代码来保留悬停/单击功能。

【问题讨论】:

    标签: javascript html css mobile


    【解决方案1】:

    试试这个:

    <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

    【讨论】:

    • 感谢您的回答,但不幸的是,这不起作用,至少在我的测试设备上不起作用(Chrome 43.0.2357.93 在 Android 4.2.2 上运行)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 2014-07-22
    • 2013-01-17
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多