下拉菜单li:悬停停止工作,必须点击打开子菜单
Dropdown menu li:hover stops working and have to click to open submenu
我有一个响应式下拉菜单,有4个按钮,其中一个打开子菜单(投资组合)。它工作得很好,除了当我点击"投资组合"按钮(不应该被点击,因为它使用悬停功能),它关闭子菜单,它不会打开或关闭,直到我再次点击该按钮。就像我说的,它不应该被点击,但这是一个可能发生的错误。
$(document).ready(main);
var contador = 1;
function main () {
$('.bt-menu').click(function(){
if (contador == 1) {
$('nav').animate({
left: '0'
});
contador = 0;
} else {
contador = 1;
$('nav').animate({
left: '-100%'
});
}
});
// Mostramos y ocultamos submenus
$('.submenu').click(function(){
$(this).children('.children').slideToggle();
});
}
* {
padding:0;
margin:0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.menu_bar {
display:none;
}
header {
width:100%;
}
header nav {
z-index:1000;
width:100%;
margin:0 auto;
}
header nav ul {
list-style:none;
}
header nav ul li {
display:inline-block;
position:relative;
}
header nav ul li a {
color:white;
display:block;
text-decoration:none;
padding:20px 20px 10px 20px;
}
header nav ul li:nth-child(3n+3) a {
color: #999;
}
header nav ul li .caret {
position:relative;
top:3px;
margin-left:10px;
margin-right:0;
}
header nav ul li:hover .children {
display:block;
}
header nav ul li .children {
display: none;
position: absolute;
background-color: white;
width: 200%;
z-index: 1000;
text-align: left;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
letter-spacing: 0;
}
header nav ul li .children li {
display:block;
overflow:hidden;
border-bottom:1px solid #E6E6E6;
min-width:50%;
}
header nav ul li .children li:nth-child(odd) {
float: left;
}
header nav ul li .children li:nth-child(even) {
float: right;
}
header nav ul li .children li a {
display:block;
color:#111;
padding:15px 25px;
}
header nav ul li .children li a:hover {
background-color:#E6E6E6;
}
@media screen and (max-width: 800px) {
body {
padding-top:40px;
}
.menu_bar {
display:block;
width:100%;
position:fixed;
top:0;
background:black;
z-index:1100;
background:green;
}
.menu_bar .menu-logo {
display:block;
padding:20px 20px 10px 20px;
color:white;
overflow:hidden;
float:left;
width:80%;
font-size:24pt;
letter-spacing:-2pt;
}
.menu_bar .bt-menu{
display:block;
padding:20px 20px 10px 20px;
color:white;
overflow:hidden;
font-size:25px;
text-decoration:none;
float:right;
width:20%
}
.menu_bar span {
float:right;
font-size:30px;
position:relative;
}
header nav {
width:85%;
height:calc(100% - 67px);
position:fixed;
right:100%;
margin:0;
overflow:scroll;
background:black;
}
header nav ul li {
display:block;
border-bottom:1px solid #111;
}
header nav ul li a {
display:block;
}
header nav ul li .children {
width:100%;
position:relative;
}
header nav ul li .children li {
display:block;
overflow:hidden;
border-bottom:1px solid #E6E6E6;
min-width:100%;
}
header nav ul li .children li:nth-child(odd) {
float: none;
}
header nav ul li .children li:nth-child(even) {
float: none;
}
header nav ul li:hover .children {
display:none;
}
header nav ul li .children li a {
margin-left:;
}
header nav ul li .caret {
float:right;
}
<div id="header">
<div id="header-logo">
<div id="logo1"><a href="index.html" target="_self">ARMANDO</a></div>
<div id="logo2"><a href="index.html" target="_self">RODRIGUEZ</a></div>
<div class="fotografia" id="logo3"><a href="index.html" target="_self">fotografía</a></div>
</div>
<div id="header-menu">
<header>
<div class="menu_bar">
<div class="menu-logo">ar</div><a href="#" class="bt-menu"><span class="icon-diafragma"></span></a>
</div>
<nav>
<ul>
<li class="submenu">
<a href="#">portafolio <span class="caret icon-dropdown"></span></a>
<ul class="children">
<li><a href="spacio.html">Spacio</a></li>
<li><a href="rancho.html">Rancho</a></li>
<li><a href="new_kid.html">New Kid</a></li>
<li><a href="retro.html">Retro</a></li>
<li><a href="isolated.html">Isolated</a></li>
<li><a href="portugal_vega.html">Portugal Vega</a></li>
<li><a href="serena.html">Serena Book</a></li>
<li><a href="summertime.html">Summertime</a></li>
<li><a href="numb.html">Numb.</a></li>
<li><a href="voyager.html">Voyager</a></li>
<li><a href="let_it_kill_you.html">Let It Kill You</a></li>
<li><a href="street_vision.html">Street Vision</a></li>
<li><a href="gamarra.html">Gamarra</a></li>
</ul>
</li>
<li><a href="info.html">info</a></li>
<li><a href="promo.html">promo</a></li>
<li><a href="contacto.html">contacto</a></li>
</ul>
</nav>
</header>
</div>
这里是链接,以便您可以看到问题:
http://armandorodriguez.pe/infojsfiddle.net/9fdhefqc/
我发现,如果我设置portfolio href从'#'到' '它不会发生,但然后菜单将无法在移动设备上正常工作,所以这不是我要找的答案。
这是因为单击该按钮后,您以某种方式向弹出子菜单添加了额外的css style="overflow: hidden; display: none;"
。它将永远不显示,直到您再次单击以将css恢复到display: block
。
你可以修改与它相关的js文件,或者直接禁用它。
在你的js文件中试试这部分代码,
$(document).ready(function(){
$(".submenu").onmouseover(function(){
$(".children").show();
}):
$(".submenu").onmouseout(function(){
$(".children").hide();
}):
}):
尝试将preventDefault()添加到Portfolio链接的单击处理程序中。顾名思义,它将阻止元素的默认操作,在本例中是紧跟URL。
$(".submenu").click(function(event){
event.preventDefault(); });
另外,看起来你可能已经分配了一个点击处理程序来隐藏和取消隐藏menu.js中的"nav"。也许你想让它成为一个悬停处理器?换句话说,尝试更改
$('.bt-menu').click(function(){
if (contador == 1) {
$('.bt-menu').hover(function(){
if (contador == 1) {
罢工在menu.js 。
相关文章:
- 如何根据下拉菜单中选择的内容为li项分配不同的类
- 活动项 li 在悬停的菜单上
- 使用jquery在ul菜单中添加li dynamic
- Jquery菜单UL LI插入
- 转换UL->li inot为同位素过滤菜单选择的列表
- 如何在jquery菜单中的li项下添加一行
- 获取选定的li文本和设置菜单'it’s text with it
- jQuery ul li 切换菜单
- 锚点包装 li 用于 WordPress 中的滑出菜单
- 展开子菜单列表 OL,如果其列表 li 中的任何一个具有活动类
- 如何在HTML中的li项目上创建右键单击自定义菜单
- 多层 ul/li 菜单错误
- li:在移动设备上悬停下拉菜单
- jQuery子菜单:LI项目仍在切换
- 如何从 php 生成的
- 下拉菜单生成第二个 li 菜单,其中包含 javascript 或 jquery
- 如何使用 javascript 中的 classList.contains 在引导下拉菜单中获取 li 类
- 我的jquery中的LI影响了我的菜单
- 糟糕的Css设计导致第三方菜单混乱的图像和LI标签
- 带UL和LI引导程序的动态菜单
- 下拉菜单li:悬停停止工作,必须点击打开子菜单