Javascript toggleClass在each函数中未按预期工作

Javascript toggleClass在each函数中未按预期工作,javascript,jquery,Javascript,Jquery,我创建了一个带有下拉菜单的简单导航。我遇到的唯一问题是,当单击具有向下箭头图标的链接(如link1 link2 link3)时,当单击另一个具有向下箭头图标的链接时,它不会旋转。我不知道为什么会这样。请帮帮我。提前谢谢你 $(文档).ready(函数(){ $('.dropdown')。每个(函数(){ var$下拉列表=$(此); $(“a.dropdown-toggle”,“$dropdown”)。单击(函数(e){ e、 预防默认值(); $(“.dropdown toggle i”,$

我创建了一个带有下拉菜单的简单导航。我遇到的唯一问题是,当单击具有向下箭头图标的链接(如link1 link2 link3)时,当单击另一个具有向下箭头图标的链接时,它不会旋转。我不知道为什么会这样。请帮帮我。提前谢谢你

$(文档).ready(函数(){
$('.dropdown')。每个(函数(){
var$下拉列表=$(此);
$(“a.dropdown-toggle”,“$dropdown”)。单击(函数(e){
e、 预防默认值();
$(“.dropdown toggle i”,$dropdown.toggleClass('rotate-arrow');
$dropdownMenu=$(“.dropdownMenu”,“$dropdown”);
$dropdownMenu.toggle();
$(“.dropdown menu”).not($dropdown menu.hide();
});
});
});
。旋转箭头{
变换:旋转(180度);
}
.下拉菜单{
显示:无;
}
.显示下拉菜单{
显示:块;
}
.下拉列表{
边缘底部:20px;
}

单击其他链接时,它不会旋转

因为您没有任何代码可以删除旋转箭头类-添加:

$(".dropdown-toggle i").removeClass("rotate-arrow");
或者,更具体地说,保持与菜单切换相同的格式:

  var $dropdowntoggle = $(".dropdown-toggle i", $dropdown)
  $dropdowntoggle.toggleClass('rotate-arrow');
  $(".dropdown-toggle i").not($dropdowntoggle).removeClass("rotate-arrow");
更新的代码段:

$(文档).ready(函数(){
$('.dropdown')。每个(函数(){
var$下拉列表=$(此);
$(“a.dropdown-toggle”,“$dropdown”)。单击(函数(e){
e、 预防默认值();
变量$dropdowntoggle=$(“.dropdowntoggle i”,$dropdown)
$dropdowntoggle.toggleClass('rotate-arrow');
$(“.DropdowntToggle i”).not($DropdowntToggle.removeClass(“旋转箭头”);
变量$dropdownMenu=$(“.dropdownMenu”、$dropdown);
$dropdownMenu.toggle();
$(“.dropdown menu”).not($dropdown menu.hide();
});
});
});
。旋转箭头{
变换:旋转(180度);
}
.下拉菜单{
显示:无;
}
.显示下拉菜单{
显示:块;
}
.下拉列表{
边缘底部:20px;
}

单击其他链接时,它不会旋转

因为您没有任何代码可以删除旋转箭头类-添加:

$(".dropdown-toggle i").removeClass("rotate-arrow");
或者,更具体地说,保持与菜单切换相同的格式:

  var $dropdowntoggle = $(".dropdown-toggle i", $dropdown)
  $dropdowntoggle.toggleClass('rotate-arrow');
  $(".dropdown-toggle i").not($dropdowntoggle).removeClass("rotate-arrow");
更新的代码段:

$(文档).ready(函数(){
$('.dropdown')。每个(函数(){
var$下拉列表=$(此);
$(“a.dropdown-toggle”,“$dropdown”)。单击(函数(e){
e、 预防默认值();
变量$dropdowntoggle=$(“.dropdowntoggle i”,$dropdown)
$dropdowntoggle.toggleClass('rotate-arrow');
$(“.DropdowntToggle i”).not($DropdowntToggle.removeClass(“旋转箭头”);
变量$dropdownMenu=$(“.dropdownMenu”、$dropdown);
$dropdownMenu.toggle();
$(“.dropdown menu”).not($dropdown menu.hide();
});
});
});
。旋转箭头{
变换:旋转(180度);
}
.下拉菜单{
显示:无;
}
.显示下拉菜单{
显示:块;
}
.下拉列表{
边缘底部:20px;
}

坏方法
CSS表示层叠样式表

$('.下拉菜单a')。单击(函数(事件){
event.preventDefault();
设$_LI=$(this.nexist('LI');
如果(!$\u LI.hasClass('selected')){
$('.selected').removeClass('selected');
}
$\u LI.toggleClass(“选定”);
});
nav ul{列表样式:无;}
li>ul{显示:无;}
li.selected>a>i{变换:旋转(180度);}
li.selected>ul{显示:块;}

坏方法