下拉菜单的实现
下拉菜单
ul 内放着若干 li ; li 内 分上下两块;上面是 a ; 下面是 ul ;ul 内有多个 li ,给li添加监听事件, 鼠标移入到 a 内时,ul 显示;鼠标再移入 ul 内时,ul 继续显示
结构
<body>
<ul class="nav">
<li>
<a href="#">微博</a>
<ul>
<li>
<a href="">私信</a>
</li>
<li>
<a href="">评论</a>
</li>
<li>
<a href="">@我</a>
</li>
</ul>
</li>
<li>
<a href="#">微博</a>
<ul>
<li>
<a href="">私信</a>
</li>
<li>
<a href="">评论</a>
</li>
<li>
<a href="">@我</a>
</li>
</ul>
</li>
<li>
<a href="#">微博</a>
<ul>
<li>
<a href="">私信</a>
</li>
<li>
<a href="">评论</a>
</li>
<li>
<a href="">@我</a>
</li>
</ul>
</li>
<li>
<a href="#">微博</a>
<ul>
<li>
<a href="">私信</a>
</li>
<li>
<a href="">评论</a>
</li>
<li>
<a href="">@我</a>
</li>
</ul>
</li>
</ul>
</body>
jQuery方法
$(function () {
//结构:jQuery对象。行为(发生的事件)
//不需要用 for 循环,因为jQuery 内有隐式迭代
//鼠标经过
$(".nav > li").mouseover(function(){
// $(this) jQuery 当前元素; this 不要加引号
$(this).children("ul").show()
// $("ul>li>ul").show() 是所有,并非当前这一个;这就体现出选择函数的重要性
})
//鼠标离开
$(".nav > li").mouseout(function () {
this.children("ul").hide()
})
})
原生JS方法
<script>
const li = document.querySelectorAll('.nav > li')
for (i = 0;li.length;i++){
li[i].addEventListener('mouseover',function () {
//this在这里成了最顶级的
//认真学习如何选中下一级
this.querySelector('ul').style.display = 'block'
})
li[i].addEventListener('mouseout',function () {
this.querySelector('ul').style.display = 'none'
})
}
</script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)