[英]How to close a dropDown div on clicking on one of the <li> inside it or outside the div?
I have a burger icon that show on small screens, on clicking on it a div is shown beneath the navigation menu containing some <li>
elements that are used for navigation among pages .我有一个显示在小屏幕上的汉堡图标,单击它时,导航菜单下方会显示一个 div,其中包含一些用于在页面之间导航的
<li>
元素。
<div class='tabs'>
<ul class="navs">
<li class="active"><a href="#" >Home</a></li>
<li><a href="#" >Organizations</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Register</a></li>
<li><a href="#">Contact</a></li>
<li><input type="text" class="search-input"><button type="submit" class="search-button"><img src=""/></button></li>
</ul>
</div>
The burger icon :汉堡图标:
<label for="toggle">☰</label>
<input type="checkbox" id="toggle"></input>
When I click the burger icon the dropdown menu appears and if I click on one of the <li>
, active
class is added to this <li>
当我单击汉堡图标时,会出现下拉菜单,如果我单击
<li>
,则active
类将添加到此<li>
I want to close this dropdown after clicking on one of the <li>
or click outside the tabs
div using Javascript .我想在单击
<li>
或使用 Javascript 在tabs
div 外单击后关闭此下拉列表。
I'm not using Bootstrap or Jquery.我没有使用 Bootstrap 或 Jquery。
Two solutions here, if you add jQuery or if you want raw JavaScript:这里有两个解决方案,如果您添加 jQuery 或想要原始 JavaScript:
// jQuery version
let toggle = $('#toggle');
let menu = $('.navs');
toggle.click(() => {
menu.toggleClass('active');
});
// non-jQuery / raw JavaScript
let toggle = document.getElementById('toggle');
let menu = document.getElementsByClassName('navs');
toggle.addEventListener('mouseup', () => {
menu.classList.toggle('active');
});
You may have to tweak a little bit to your page.您可能需要稍微调整一下您的页面。
element.classList
is standard now, that said some older browsers may not support it. element.classList
现在是标准的,也就是说一些旧的浏览器可能不支持它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.