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实现多级菜单展开隐藏并且加上加号或者减号区分有无下级的主要内容,如果未能解决你的问题,请参考以下文章

DIV,CSS如何实现“加减号”“显示隐藏”效果

多级菜单栏展开隐藏动画

关闭多级 jquery 下拉菜单

导航条——树状导航菜单

word 怎么设置这样的多级列表

AS中一些不经常用到的快捷键