Javascript 如何删除子导航重叠?
我正在尝试创建一个子导航。现在我有两个亚纳伏。当我将鼠标悬停在主菜单上的第一项上时,会出现相应的子菜单。但当我将鼠标悬停在第二项上时,第二个子导航将出现在第一项上。如何编写代码以避免这种情况发生 网址: 我刚刚尝试了Scott的以下建议,但我无法在hover上显示和隐藏子菜单。有没有办法解决这个问题?以下是我的新代码: htmlJavascript 如何删除子导航重叠?,javascript,jquery,navigation,hover,submenu,Javascript,Jquery,Navigation,Hover,Submenu,我正在尝试创建一个子导航。现在我有两个亚纳伏。当我将鼠标悬停在主菜单上的第一项上时,会出现相应的子菜单。但当我将鼠标悬停在第二项上时,第二个子导航将出现在第一项上。如何编写代码以避免这种情况发生 网址: 我刚刚尝试了Scott的以下建议,但我无法在hover上显示和隐藏子菜单。有没有办法解决这个问题?以下是我的新代码: html 您已经创建了mouseleave事件,但只将其附加到子菜单。因此,为了使菜单消失,用户必须将鼠标悬停在子菜单上,然后移出。您可以通过在打开新子菜单之前隐藏其他子菜单来实
您已经创建了mouseleave事件,但只将其附加到子菜单。因此,为了使菜单消失,用户必须将鼠标悬停在子菜单上,然后移出。您可以通过在打开新子菜单之前隐藏其他子菜单来实现所需的功能。因此,保持mouseleave事件不变,您可以将2个mouseover事件修改为:
$('#arbNavText01').mouseover(function() {
$('#subNav02').hide('slow');
$('#subNav01').show('slow');
});
$('#arbNavText02').mouseover(function() {
$('#subNav01').hide('slow');
$('#subNav02').show('slow');
});
编辑以供评论:
当我最初去看你的页面时,我正在考虑这个问题。我认为如果你在html中使用稍微不同的结构,这是可以做到的。现在,菜单div在结构上彼此之间没有明显的关联,因此可以添加一个div,其中可以包含与每个菜单项关联的3个元素
我要把一个想法抛诸脑后,它甚至可能不起作用,更不用说是最好的方法了
<div id="menu01" class="menu_item">
<div id="engNavText01">Alphabet</div>
<div id="arbNavText01">الأحرف</div>
<div id="subNav01" style="display: none; ">
<a href="colors" class="subNav"><span style="font-size:26px; cursor:pointer;">قراءة</span</a>
<br>reading<br><br>
</div>
</div>
<div id="menu02" class="menu_item">...
我试着用一个,看起来不错。您的使用可能需要一些修改。谢谢。这是完美的,除了现在我必须在接下来的比赛中做同样的事情。我有八个,我不想在代码中重复我自己。例如,是否有一种优雅的写作方式,以便有一个类。在哪里我可以要求它一次只显示一个子菜单?我一直在寻找如何按照您在我的html文件中建议的方式将它们放在div中。谢谢你对我代码的改进。但是js代码不起作用。
$(document).ready(function() {
$('.menu_item').children().hover(
function(){
$subNav = $(this).parents('menu_item').children("div[id^='subNav'");
if ($subNav.css('display', 'none')){
$subNav.show('slow');
}
},
function(){
$(this).parents('menu_item').children("div[id^='subNav'").hide('slow');
});
})
$('#arbNavText01').mouseover(function() {
$('#subNav02').hide('slow');
$('#subNav01').show('slow');
});
$('#arbNavText02').mouseover(function() {
$('#subNav01').hide('slow');
$('#subNav02').show('slow');
});
<div id="menu01" class="menu_item">
<div id="engNavText01">Alphabet</div>
<div id="arbNavText01">الأحرف</div>
<div id="subNav01" style="display: none; ">
<a href="colors" class="subNav"><span style="font-size:26px; cursor:pointer;">قراءة</span</a>
<br>reading<br><br>
</div>
</div>
<div id="menu02" class="menu_item">...
$('.menu_item').hover(
function(){
$subNav = $(this).children("div[id^='subNav']");
if ($subNav.css('display', 'none')){
$subNav.show('slow');
}
},
function(){
$(this).children("div[id^='subNav']").hide('slow');
}
);