我有两个下拉导航菜单。当我单击另一个下拉菜单(产品)时,我想隐藏“展开的”下拉菜单(关于)。
这是我的小提琴:
[https://jsfiddle.net/83gLyof6/2/]
TIA
答案 0 :(得分:3)
添加此$(“。dropdown-menu”)。slideUp(“ fast”);下拉点击功能。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Hide Dropdown on Click Outside</title>
<style type="text/css">
ul{
padding: 0;
list-style: none;
background: #f2f2f2;
}
ul li{
display: inline-block;
position: relative;
line-height: 21px;
text-align: left;
}
ul li a{
display: block;
padding: 8px 25px;
color: #333;
text-decoration: none;
}
ul li a:hover{
color: #fff;
background: #939393;
}
ul li ul.dropdown-menu{
min-width: 100%; /* Set width of the dropdown */
background: #f2f2f2;
display: none;
position: absolute;
z-index: 999;
left: 0;
}
ul li ul.dropdown-menu li{
display: block;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
// Show hide popover
$(".dropdown").click(function(){
if(!$(this).find(".dropdown-menu").is(":visible")){
$(".dropdown-menu").slideUp("fast");
$(this).find(".dropdown-menu").slideToggle("fast");
}
else{
$(".dropdown-menu").slideUp("fast");
}
});
});
$(document).on("click", function(event){
var $trigger = $(".dropdown");
if($trigger !== event.target && !$trigger.has(event.target).length){
$(".dropdown-menu").slideUp("fast");
$(this).find(".dropdown-menu").hide;
}
});
</script>
</head>
<body>
<ul>
<li><a href="#">Home</a></li>
<li class="dropdown">
<a href="#">about ▾</a>
<ul class="dropdown-menu">
<li><a href="#">Laptops</a></li>
<li><a href="#">Monitors</a></li>
<li><a href="#">Printers</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#">Products ▾</a>
<ul class="dropdown-menu">
<li><a href="#">Laptops</a></li>
<li><a href="#">Monitors</a></li>
<li><a href="#">Printers</a></li>
</ul>
</li>
<li><a href="#">Contact</a></li>
</ul>
</body>
</html>
答案 1 :(得分:1)
快速而肮脏的方式,但是它可以完成工作:
$(".dropdown").click(function(){
$(".opened-dropdown-menu").slideUp("fast");
$(this).find(".dropdown-menu").toggleClass("opened-dropdown-menu").slideToggle("fast");
});