Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下拉菜单,移除打开的类_Javascript_Jquery_Css - Fatal编程技术网

Javascript 下拉菜单,移除打开的类

Javascript 下拉菜单,移除打开的类,javascript,jquery,css,Javascript,Jquery,Css,我正在尝试创建下拉菜单,我是这样做的,默认情况下,我正在创建下拉菜单 .dropdown { display: none; } 然后,我在单击时创建事件,并基于该上下文切换类 .active { display block; } 现在我想不出当我单击其他按钮或文档中的时,如何删除该.active类,如果用户单击其他按钮,我不想保持下拉式活动类在注释后更新 您不需要在关键字中添加”。您的代码行应该是: $(this).siblings("ul.dropdown").toggleClas

我正在尝试创建下拉菜单,我是这样做的,默认情况下,我正在创建下拉菜单

.dropdown {
    display: none;
}
然后,我在单击时创建事件,并基于该上下文切换类

.active { display block; }

现在我想不出当我单击其他按钮或文档中的时,如何删除该
.active
类,如果用户单击其他按钮,我不想保持下拉式活动类在注释后更新

您不需要在
关键字中添加
。您的代码行应该是:

$(this).siblings("ul.dropdown").toggleClass("active");
完整代码

$(function () {
var dropdown = $(".btn").find("a");
dropdown.on("click", function() {
$("ul.dropdown.active").removeClass("active");  //added new line
$(this).siblings("ul.dropdown").toggleClass("active");
});
}());

不要像你想的那样工作。对于你的情况,我建议这样做:

$(function () {
    var dropdown = $(".btn").find("a");
    dropdown.on("click", function() {
        $("ul.dropdown").removeClass("active");//add this to remove class from all ul .dropdowns
        $(this).siblings("ul.dropdown").addClass("active");//Add class to your ul dropdown. Here you can use toggleClass too
    });

}());


.

谢谢,但只有一个问题,如果下拉列表1打开,我单击btn 2,我想关闭下拉列表1,例如,如果下拉列表1有class.active,我单击下拉列表btn 2,我想从下拉列表btn 1中删除class active。
$(function () {
    var dropdown = $(".btn").find("a");
    dropdown.on("click", function() {
        $("ul.dropdown").removeClass("active");//add this to remove class from all ul .dropdowns
        $(this).siblings("ul.dropdown").addClass("active");//Add class to your ul dropdown. Here you can use toggleClass too
    });

}());
$(function () {
    $(document).on('click', function () {
        $("ul.dropdown").removeClass('active');
    });

    $(".btn a").on("click", function (e) {
        e.stopPropagation();
        $("ul.dropdown").removeClass('active');
        $(this).siblings("ul.dropdown").addClass("active");
    });
});