更新时间:2022-03-21 来源:黑马程序员 浏览量:
在menu.html中添加jQuery代码,实现菜单的折叠特效。
menu.html 图2-17 静态页面效果
<script src="js/jquery-1.12.4.js"></script>
<script>
//隐藏所有二级菜单
$('.menu-head + div').hide();
//显示当前,隐藏其他
$('.menu-head').click(function() {
//设置当前菜单右侧图标样式
$(this).css('backgroundImage', 'url(img/pro_down.png)');
//显示当前菜单对应的子菜单
$(this).next('div').show();
//获取其他菜单外层的li元素
var parentli = $(this).parent('li');
var lis = parentli.siblings('li');
//找到每个li元素下的主菜单,设置主菜单右侧图标样式
lis.children('p').css('backgroundImage',
'url(img/pro_left.png)');
//隐藏其他主菜单下的子菜单
lis.children('div').hide();
});
</script>上述代码中,选择器“.menu——head+div”可获取所有菜单项下的子菜单,调用jQuery提供的hide()方法即可完成所有子菜单的隐藏。然后在class值为menu——head的元素上注册单击事件,每当单击事件被触发时,执行第7~18行代码进行相关的处理。
下面分别对第7~18行代码进行重点讲解,具体如下所示。
·第8行使用css()方法设置被单击的p元素的图标。
·第10行使用next()方法找到p元素下的div元素,并调用jQuery提供的show()方法显示匹配到的元素。
·第12行使用parent()方法找到p元素上级的li元素,并使用变量parentli保存。
·第13行使用parentli调用siblings()方法找到其他同级的li元素,即一级菜单。
·第15行使用children()方法找到同级li元素的子元素p,并使用css()方法设置要显示的图标。
·第18行使用children()方法获取同级li元素下的div元素,并调用jQuery提供的hide()方法隐藏匹配到的元素。
添加上述jQuery代码后,本案例的全部代码已经给出,测试方法读者可以参考案例展示。
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27