Есть меню с выпадающим списком, выпадающий список появляется по клику (slideToggle()), как сделать чтобы подменю автоматически сворачивался обратно если происходит клик по другому выпадающему списку или по полю вне блока подменю?
$('.dropdown').on('click',function(){
$(this).children('.submenu').slideToggle(200);
})
*{
font-family: sans-serif;
}
ul{
list-style:none;
}
li{
display:inline-block;
background: #000;
}
a{
display:block;
padding: 10px;
color:#fff;
text-decoration: none;
}
.dropdown{
position: relative;
background: orange;
}
.submenu{
margin: 0;
padding: 0;
position: absolute;
left: 0;top: 38px;
background: pink;
display:none;
}
.submenu li{
display:block;
top: 0;
background: tomato;
}
.submenu li a{
padding: 10px 40px;
}
.submenu li:hover{
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<ul>
<li><a href="#">Link1</a></li>
<li><a href="#">Link2</a></li>
<li class="dropdown">
<a href="#">Link3</a>
<ul class="submenu">
<li><a href="#">sublink1</a></li>
<li><a href="#">sublink2</a></li>
<li><a href="#">sublink3</a></li>
<li><a href="#">sublink4</a></li>
<li><a href="#">sublink5</a></li>
</ul>
</li>
<li><a href="#">Link4</a></li>
<li class="dropdown">
<a href="#">Link5</a>
<ul class="submenu">
<li><a href="#">sublink1</a></li>
<li><a href="#">sublink2</a></li>
<li><a href="#">sublink3</a></li>
<li><a href="#">sublink4</a></li>
<li><a href="#">sublink5</a></li>
</ul>
</li>
</ul>
</nav>
<hr>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quae impedit dolorum accusamus esse fuga, non, necessitatibus cumque repellendus iure expedita adipisci nulla minus, iusto maiores quasi magni beatae suscipit cupiditate exercitationem? Debitis odit a exercitationem, asperiores, non optio quas ab commodi quam ullam est necessitatibus error vel excepturi nisi ut ad voluptatem mollitia cumque dolorum facere magnam quo. Provident corporis eaque repellat quam magnam aut rerum consequatur temporibus nesciunt expedita. At beatae modi repellendus ducimus velit ratione, sapiente voluptas amet consectetur quidem nihil possimus nobis illo quasi, in, minus non enim. Nulla, quas tenetur enim culpa quibusdam ex rerum officiis.</p>
$(document).on('click', function(e) {
if (!$(e.target).hasClass('dropdown') && !$(e.target).closest('.dropdown').length)
$('.submenu:visible').slideToggle(200);
});
$('.dropdown').on('click', function() {
$('.submenu:visible').not($(this).children('.submenu')).slideToggle(200);
$(this).children('.submenu').slideToggle(200);
});
* {
font-family: sans-serif;
}
ul {
list-style: none;
}
li {
display: inline-block;
background: #000;
}
a {
display: block;
padding: 10px;
color: #fff;
text-decoration: none;
}
.dropdown {
position: relative;
background: orange;
}
.submenu {
margin: 0;
padding: 0;
position: absolute;
left: 0;
top: 38px;
background: pink;
display: none;
}
.submenu li {
display: block;
top: 0;
background: tomato;
}
.submenu li a {
padding: 10px 40px;
}
.submenu li:hover {
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<ul>
<li><a href="#">Link1</a></li>
<li><a href="#">Link2</a></li>
<li class="dropdown">
<a href="#">Link3</a>
<ul class="submenu">
<li><a href="#">sublink1</a></li>
<li><a href="#">sublink2</a></li>
<li><a href="#">sublink3</a></li>
<li><a href="#">sublink4</a></li>
<li><a href="#">sublink5</a></li>
</ul>
</li>
<li><a href="#">Link4</a></li>
<li class="dropdown">
<a href="#">Link5</a>
<ul class="submenu">
<li><a href="#">sublink1</a></li>
<li><a href="#">sublink2</a></li>
<li><a href="#">sublink3</a></li>
<li><a href="#">sublink4</a></li>
<li><a href="#">sublink5</a></li>
</ul>
</li>
</ul>
</nav>
<hr>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quae impedit dolorum accusamus esse fuga, non, necessitatibus cumque repellendus iure expedita adipisci nulla minus, iusto maiores quasi magni beatae suscipit cupiditate exercitationem? Debitis
odit a exercitationem, asperiores, non optio quas ab commodi quam ullam est necessitatibus error vel excepturi nisi ut ad voluptatem mollitia cumque dolorum facere magnam quo. Provident corporis eaque repellat quam magnam aut rerum consequatur temporibus
nesciunt expedita. At beatae modi repellendus ducimus velit ratione, sapiente voluptas amet consectetur quidem nihil possimus nobis illo quasi, in, minus non enim. Nulla, quas tenetur enim culpa quibusdam ex rerum officiis.</p>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей