Javascript 打开其他下拉列表时关闭下拉列表

Javascript 打开其他下拉列表时关闭下拉列表,javascript,dropdown,Javascript,Dropdown,这是我的密码: /*当用户单击按钮时, 在隐藏和显示下拉内容之间切换*/ 函数myFunction(){ document.getElementById(“myDropdown”).classList.toggle(“show”); } //如果用户在下拉列表之外单击,请关闭下拉列表 window.onclick=函数(事件){ 如果(!event.target.matches('.dropbtn')){ var dropdowns=document.getElementsByClassName

这是我的密码:

/*当用户单击按钮时,
在隐藏和显示下拉内容之间切换*/
函数myFunction(){
document.getElementById(“myDropdown”).classList.toggle(“show”);
}
//如果用户在下拉列表之外单击,请关闭下拉列表
window.onclick=函数(事件){
如果(!event.target.matches('.dropbtn')){
var dropdowns=document.getElementsByClassName(“下拉内容”);
var i;
对于(i=0;i

当一个下拉列表打开时,可以同时打开另一个下拉列表。我试着把另一个关上,一次只打开一个。如何做到这一点?

将您的函数更新为:

function myFunction() {
    var d2 = document.getElementById("myDropdown2").classList;
    if(d2.contains("show")) d2.toggle("show");
    document.getElementById("myDropdown").classList.toggle("show");
}
另一个功能类似

i、 e,检查另一个下拉列表是否包含类
show
,然后将其删除

更好的方法是跟踪上一个打开的下拉列表,并在打开另一个下拉列表之前关闭它,但因为您只有两个下拉列表,所以这应该可以

现场演示

function myFunction() {
    var d2 = document.getElementById("myDropdown2").classList;
    if(d2.contains("show")) d2.toggle("show");
    document.getElementById("myDropdown").classList.toggle("show");
}