微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 显示/隐藏加减号

所以我有它的工作,它显示/隐藏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/

解决方法

你去: http://jsfiddle.net/bc4mg13a/13/

$(".menu-item-has-children").on("click",function(e){
  e.stopPropagation();
  var clickedLi = $(this);
  $("> ul",clickedLi).slidetoggle();
  clickedLi.toggleClass("current"); 
});

首先,你的第一个js行是一个有太多冗余的东西.

$(“.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上的当前类切换加号.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐