【发布时间】:2022-09-26 05:10:26
【问题描述】:
我正在尝试创建一个菜单,单击帐户将显示菜单,再次单击将关闭菜单。同样,如果有人在菜单外单击,菜单将关闭。我可以做任何事情,但是如果出现问题,即使我点击菜单中的链接,菜单也会关闭。如果有人在菜单外再次单击帐户按钮,我只想关闭菜单。解决办法是什么?
/* When the user clicks on the button,
toggle between hiding and showing the dropdown content */
function myFunction() {
document.getElementById(\"myDropdown\").classList.toggle(\"show\");
}
// Close the dropdown if the user clicks outside of it
window.onclick = function(e) {
if (!e.target.matches(\'.dropbtn span\')) {
var myDropdown = document.getElementById(\"myDropdown\");
if (myDropdown.classList.contains(\'show\')) {
myDropdown.classList.remove(\'show\');
}
}
}
.dropdown {
float: left;
overflow: hidden;
}
.dropdown .dropbtn {
cursor: pointer;
font-size: 16px;
border: none;
outline: none;
color: white;
padding: 14px 16px;
background-color: inherit;
font-family: inherit;
margin: 0;
}
.dropdown-content {
display: none;
z-index: 9;
width: 200px;
top: 72px;
left: 20px;
background: #fff;
position: absolute;
box-shadow: 0px 0px 13px #0000001a;
border-radius: 5px;
padding: 17px;
}
.dropdown-content a {
float: none;
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
border: none;
}
.dropdown-content a:hover {
background-color: #dddddd54;
border: none;
border-radius: 5px;
}
.show {
display: block;
}
<div class=\"right-side-menu\">
<div class=\"menu-item\" onclick=\"searchFunction()\"><span class=\"icon fa-solid fa-magnifying-glass\"></span></div>
<div class=\"dropbtn menu-item\" onclick=\"myFunction()\"><span class=\"icon fa-regular fa-user\"><span class=\"font\">Account</span></span>
</div>
<div class=\"menu-item\"><a href=\"#\"><span class=\"icon fa-regular fa-arrow-right-to-bracket\">LogIn</span></a></div>
<div class=\"menu-item\"><a href=\"#\"><span class=\"icon fa-regular fa-pen-to-square\"><span class=\"font\">Write</span></span></a></div>
<div class=\"dropdown-content\" id=\"myDropdown\">
<a href=\"#\"><i class=\"rbi rbi-bookmark\"></i>Saved Article</a>
<a href=\"#\"><i class=\"fa-regular fa-clipboard\"></i>My Article</a>
<a href=\"#\"><i class=\"fa-regular fa-chart-bar\"></i>My Profile</a>
<a href=\"#\"><i class=\"red fa-solid fa-arrow-right-from-bracket\"></i>Log Out</a>
</div>
</div>
标签: javascript html