Jq实现多级菜单展开隐藏并且加上加号或者减号区分有无下级
Posted 野猪佩奇007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jq实现多级菜单展开隐藏并且加上加号或者减号区分有无下级相关的知识,希望对你有一定的参考价值。
Css:
ul li {
list-style: none;
}
li ul{
display: none;
}
.plus{
list-style-image: url(img/plus.gif);
}
.minus{
list-style-image: url(img/minus.gif);
}
html:
<ul>
<li>主题1
<ul>
<li>主题2
<ul>
<li>三级菜单a</li>
<li>三级菜单b</li>
<li>三级菜单c</li>
<li>三级菜单d</li>
</ul>
</li>
<li>主题3
<ul>
<li>三级
<ul>
<li>四级</li>
<li>四级</li>
<li>四级</li>
</ul>
</li>
<li>三级</li>
<li>三级</li>
<li>三级</li>
</ul>
</li>
<li>主题四</li>
</ul>
</li>
</ul>
Js:
<script type = "text/javascript" src = "js/jquery-1.11.0.js"></script>
<script type = "text/javascript" >
$(function () {
//要给所有具有ul的li添加+
$("li:has(ul)").addClass("plus")
//添加点击事件
.click(function (e) {
//阻止冒泡
e.stopPropagation();
//console.log(this,$(this).children().length);
if ($(e.target).children().length) { //给事件源添加点击事件,没必要点击的不添加
/*if($(this).hasClass("plus")){
$(this).removeClass("plus").addClass("minus");
}else{
$(this).removeClass("minus").addClass("plus");
}*/
$(this).toggleClass("minus"); //有这个类名删掉没有的话加上
$(this).children().slideToggle(); //展开和关闭子元素
}
//return false;
})
})
</script>
以上是关于Jq实现多级菜单展开隐藏并且加上加号或者减号区分有无下级的主要内容,如果未能解决你的问题,请参考以下文章