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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...