当单击div时,模拟单击div内选择框。

3

一个快速的问题。我能否使用jQuery在一个div中模拟点击选择框(不考虑选择框的id或类)?该div中只有一个选择框。谢谢提前。

以下是HTML代码:

<div class="custom-select">
<select id="operator_select">
<option  value="1">1</option>
<option  value="2">2</option>
<select>
</div>

我尝试的Jquery代码:

    $(function(){
     $(".custom-select").click(function(){
       $('select',this).click();
       });
     });

这里有一个示例: http://jsfiddle.net/arjdev/5Sch2/


你是否正在尝试以编程方式打开下拉菜单?https://dev59.com/12Yr5IYBdhLWcg3w---U - George
是的,我正在尝试。@oGeez - ArJ
3个回答

2
$(function () {
    function open(elem) {
        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);
            elem[0].dispatchEvent(e);
        } else if (element.fireEvent) {
            elem[0].fireEvent("onmousedown");
        }
    }

    $(".custom-select").click(function () {
        open($(this).find('select'));
    });
});

你的select标签并未结束,需要加上</select>.

Fiddle


你试过了吗?对我没用。你能提供一个 Fiddle 吗? - ArJ
谢谢,干得好。我没想到会走得那么远(创建自定义事件)。 - ArJ
只是一个提示,对我来说将函数名称从 open 更改为其他名称 openSim 是有效的。因为 open 会打开新的浏览器标签页。 - onetwo12

0

尝试触发方法

 $(function(){
 $(".custom-select").click(function(){
   $('select').trigger( "click" );
   });
 });

0

试试这个...它会在表单加载时触发

    $(document).ready(function() {
         $('.custom-select').find('select').trigger('click');
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接