jquery - 下拉菜单 Jquery html
问题描述
<nav>
<ul class="huvud" id="top">
<li>
<a href="#">Godis</a>
<ul class="hand">
<li>
<a href="#">Choklad</a>
</li>
<li>
<a href="HTML/lakrits.html">Lakrits</a>
</li>
</ul>
</li>
<li>
<a href="#">Bakelser</a>
<ul class="hand">
<li>
<a href="#">Croissant</a>
</li>
<li>
<a href="#">idk</a>
</li>
</ul>
</li>
<li>
<a href="#">Drycker</a>
<ul class="hand">
<li><a href="#">Läsk</a></li>
<li>
<a href="#">Energidryck</a>
</li>
</ul>
</li>
</ul>
</nav>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('nav').hover(
()=>$('.hand',this).slideDown(700)
,
()=> $('.hand', this).slideUp(700)
)
});
</script>
我已经制作了这段代码,它的作用是当我将鼠标悬停在导航中的某个东西上方时,它会显示所有额外的列表,这不是这段代码的意图,我想做的是,如果我将鼠标悬停在“#Godis”上,然后只有一个会扩展,而其他人不会。
解决方案
您需要找到与主菜单项相关的正确子菜单才能打开/关闭。
//$('ul.hand').hide();// Uncomment tis if you want all of them to be hidden initially.
$('ul.huvud > li').hover(function () {
$('> ul.hand',this).slideDown(700);
},function () {
$('> ul.hand',this).slideUp(700);
});
<nav>
<ul class="huvud" id="top">
<li>
<a href="#" class="main">Godis</a>
<ul class="hand">
<li>
<a href="#">Choklad</a>
</li>
<li>
<a href="HTML/lakrits.html">Lakrits</a>
</li>
</ul>
</li>
<li>
<a href="#" class="main">Bakelser</a>
<ul class="hand">
<li>
<a href="#">Croissant</a>
</li>
<li>
<a href="#">idk</a>
</li>
</ul>
</li>
<li>
<a href="#" class="main">Drycker</a>
<ul class="hand">
<li><a href="#">Läsk</a></li>
<li>
<a href="#">Energidryck</a>
</li>
</ul>
</li>
</ul>
</nav>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
推荐阅读
- python - 分析 uwsgi+nginx 背后的生产烧瓶应用程序
- architecture - 跨多个微服务共享数据
- python - 使用 pandas 从 txt 文件中分离数据
- swift - 删除特定 UICollectionViewCells 之间的间距
- android - 解决重复的类依赖 - gradle
- c# - 从 xml 中删除 xmlns 属性
- excel - 如何从函数返回对象
- python - 根据登录用户上传的文件数从views.py返回不同的模板
- stm32 - STM32H7 在复位后不久尝试擦除 bank 1、扇区 0 时挂起
- arrays - Array .push 在每个循环内返回用相同对象填充的数组