请帮忙写个Javascript可以实现上面的下拉菜单:
要求:
1.当鼠标点击“菜单A”时才出现
2.当鼠标移动到“二级菜单1”或“二级菜单3”时,三级菜单会隐藏
3.当点击网页空白处时,“二级菜单”和“三级菜单”都会隐藏
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>多级无限级菜单</title>
<link href="yyui.css" rel="stylesheet" type="text/css">
</head>
<body style="padding:30px; ">
<style type="text/css">
.yyui_menu1 { height:35px; line-height:35px; font-size:15px; background-color:#f2f2f2; }
.yyui_menu1 ul,.yyui_menu1{list-style:none}
.yyui_menu1 li { float:left; position:relative;}
.yyui_menu1 li a { display:block; line-height:35px; text-decoration:none; padding:0px 20px; color:#333333; }
.yyui_menu1 li a:hover { background:#EFEFEF; }
.yyui_menu1 li a.more:after{content:" »";}
.yyui_menu1 li ul { position:absolute; float:left; width:150px; border:1px solid #D2D2D2; display:none; background-color:#FFFfff; z-index:9999;}
.yyui_menu1 li ul a { width:110px;text-decoration:none; color:#333333;}
.yyui_menu1 li ul a:hover { background:#f2f2f2;}
.yyui_menu1 li ul ul{ top:0;left:150px;}
</style>
<ul class="yyui_menu1">
<li><a href="#">菜单一</a>
<ul class="one">
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单三</a></li>
<li><a href="#">菜单四</a></li>
<li><a href="#" class="more">菜单五</a>
<ul class="two">
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单三</a></li>
<li><a href="#">菜单四</a></li>
<li><a href="#" class="more">菜单五</a>
<ul class="three">
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单三</a></li>
<li><a href="#">菜单四</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script>
<script>
$('.yyui_menu1 li').click(function (e) {
e.stopPropagation();
$(this).children("ul").toggle();
});
</script>
</body>
</html>
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>主题市场
<ul>
<li>运动派
<ul>
<li>三级菜单a</li>
<li>三级菜单b</li>
<li>三级菜单c</li>
<li>三级菜单d</li>
</ul>
</li>
<li>有车族
<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>
希望能帮到你,可以的话请采纳