所以我有它的工作,它显示/隐藏UL的/ LI,但我不知道我在做什么不正确的地方,它没有交换/ – 标志?
这是我的JS:
$(".top ul li:not(:has(li.current))").find("ul").hide().end() // Hide all other ULs .click(function (e) { if (this == e.target) { $(this).children('ul').slidetoggle(); } $(this).children("li.menu-item-has-children").text(this.toggle ? "-" : "+"); return false; });
我有一个类设置来附加li与li:之前在具有嵌套ul的li之前添加符号.但是我不确定我是否正确地换掉这些标志.
这是我做的小提琴:
解决方法
你去:
http://jsfiddle.net/bc4mg13a/13/
$(".menu-item-has-children").on("click",function(e){ e.stopPropagation(); var clickedLi = $(this); $("> ul",clickedLi).slidetoggle(); clickedLi.toggleClass("current"); });
$(“.top ul li:not(:has(li.current))”).find(“ul”).hide().end()//隐藏所有其他UL
.点击
可能:
$(“.top ul li:not(.current)”).find(“ul”).hide().end()//隐藏所有其他UL
.点击
另一方面,我稍微改变了你的代码,简化了选择器.在每次li点击时,我选择直接ul子项,并在i slidetoggle切换类中选择’current’类.
我也通过css上的当前类切换加号.