在jquery中单击其他元素时,它会触发下拉列表,并且必须打开下拉列表

时间:2015-08-18 13:01:37

标签: javascript jquery triggers

在jquery中单击触发下拉列表的其他元素并显示该选项。 这是脚本代码

$(document).ready(function(){
    $("select").on("click",function(){
        alert("ee");
    });
    $("#element").on("click",function(){
        $("select").trigger("click");
    });
});

在此代码中,它会在单击元素时显示警告,但下拉值未打开。

2 个答案:

答案 0 :(得分:0)

除非是自定义下拉列表,否则无法使用脚本打开它。默认的表单控制器不允许这样做see this question

答案 1 :(得分:0)

question的帮助下回答。



$(document).ready(function(){
    $("select").on("click",function(){
       alert("ee");
    });
    $("#element").on("click",function(){
      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.");
    }   
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

<a id="element">asdasd</a>
&#13;
&#13;
&#13;