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");
});
});