【发布时间】:2018-03-01 03:03:24
【问题描述】:
在 jQuery 设置 css 后,导航栏上的子菜单不显示。当我点击子菜单项时,容器被设置为display:none,但是当我再次将鼠标悬停在菜单项上时,子菜单不会显示。
.navmenu {
height: 32px;
list-style-type: none;
margin: 0;
padding: 0;
text-align: justify;
}
.navmenu li {
display: inline-block;
line-height: 2em;
}
.navmenu li a {
display: block;
font-family: THCFontSemiBold;
font-weight: bold;
color: #f3ac3f;
text-decoration: none;
}
.navmenu li:hover {
background: #6d1238;
}
.navmenu li ul {
margin: 13px 0px 0px 7px;
padding: 0;
display: inline-block;
position: absolute;
background: #510E2A;
border: 2px solid #AA6180;
list-style-type: none;
box-shadow: 5px 10px 15px #000;
z-index: 1;
visibility: hidden;
}
.navmenu li ul:before, .navmenu ul:after {
content: '';
height: 0px;
width: 0px;
position: absolute;
top: -15px;
left: 10px;
}
.navmenu li ul:before {
border-left: 15px solid transparent;
border-right: 15px solid transparent;
border-bottom: 15px solid #AA6180;
}
.navmenu li ul:after {
border-left: 15px solid transparent;
border-right: 15px solid transparent;
border-bottom: 15px solid #510E2A;
top: -12px;
}
.navmenu li ul li {
line-height: 1.8em;
display: block;
text-align: left;
margin: 8px;
}
.navmenu li:hover ul {
visibility: visible;
}
.navmenu:after {
content: '';
display: inline-block;
width: 100%;
clear: both;
}
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="navd">
<ul class="navmenu">
<li><a href="#" id="mnu_Home">Home</a></li>
<li><a href="#" id="mnu_aboutus">About Us</a></li>
<li>
<a href="#" id="mnu_services">Services</a>
<ul>
<li><a href="#" id="mnu_painmanagement">Pain Management</a></li>
<li><a href="#" id="mnu_weightloss">Weight Loss</a></li>
<li><a href="#" id="mnu_cosmetic">Cosmetic Procedure</a></li>
<li><a href="#" id="mnu_vitamins">Vitamin Injections</a></li>
</ul>
</li>
<li><a href="#" id="mnu_testimonials">Testimonials</a></li>
<li><a href="#" id="mnu_patientforms">Patient Forms</a></li>
<li><a href="#" id="mnu_contactus">Contact Us</a></li>
<li><a href="#" id="mnu_patientportal">Patient Portal</a></li>
</ul>
</div>
请告知我如何更正此问题或有关如何在桌面和移动设备上处理此菜单的任何其他建议(当您将鼠标悬停在容器外时,移动设备不会隐藏子菜单)。
【问题讨论】:
-
点击功能的目的是什么?一旦你点击它,你就会隐藏它,然后会发生什么?
-
问题是
toggle给item添加了内联样式属性。内联样式优先于外部样式表样式。 -
@LinkinTed 点击功能主要用于移动设备。隐藏子菜单后,如果将鼠标悬停在主菜单项上,将无法再次显示它。
-
@LinkinTed 我试图通过设置
.css("display","none")来隐藏子菜单,但我得到了相同的结果。 -
使用引导或复制影响此作业的行为(类和 js):w3schools.com/bootstrap/…