jQuery实现可收缩展开的级联菜单实例代码


Posted in Javascript onNovember 27, 2013

如果用纯JavaScript代码而不使用框架的话,那么做一个级联菜单也许是一件让人生畏的事情,但有了框架,这件事情就很容易了,这就是框架的好处,极大地提高了开发效率,并且更可靠和易于维护。使用jQuery来实现级联菜单的一般步骤如下:

•1.首先使用<ul>和<li>创建一个级联菜单 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>itcast.cn的JQuery应用示例:弹出菜单</title>
  <link type="text/css" rel="stylesheet" href="css/menu.css" mce_href="css/menu.css" />
  <mce:script type="text/javascript" src="jslib/jquery.js" mce_src="jslib/jquery.js"></mce:script>
  <mce:script type="text/javascript" src="jslib/jquerymenu.js" mce_src="jslib/jquerymenu.js"></mce:script>
</head>
<body>
    <ul>
        <a href="#" mce_href="#">我是菜单1</a>
        <li><a href="#" mce_href="#">我是子菜单1</a></li>
        <li><a href="#" mce_href="#">我是子菜单2</a></li>
    </ul>
    <ul>
        <a href="#" mce_href="#">我是菜单2</a>
        <li><a href="#" mce_href="#">我是子菜单3</a></li>
        <li><a href="#" mce_href="#">我是子菜单4</a></li>
    </ul>
</body>
</html>

•2.编写JavaScript代码,控制级联菜单的收缩
//需要点击主菜单的按钮时,对应的子菜单可以显示,再次点击子菜单则隐藏
//需要编写代码,在页面装载时,给所有的主菜单添加onclick的事件
//保证主菜单点击时可以显示或隐藏子菜单
//注册页面装载时执行的方法
$(document).ready(function() {
    //这里需要首先找到所有的主菜单
    //然后给所有的主菜单注册点击事件
    //找到ul中的节点
    var as = $("ul > a");
    as.click(function() {
        //这里需要找到当前ul中的li,然后让li显示出来
        //获取当前被点击的a节点
        var aNode = $(this);
        //找到当前a节点的所有li兄弟字节点
        var lis = aNode.nextAll("li");
        //让子节点显示或隐藏
        lis.toggle("show");
    });
});

•创建css文件,来控制标签的显示效果
/*如何让所有的li都不显示小圆点,可以使用css的标签选择器*/
li {
    list-style: none; /*使li前面的小圆点消失*/
    margin-left: 18px; /*让子菜单向右移动一段距离,达到缩进的效果*/
    display: none; /*让所有的子菜单都先隐藏*/
}
a{
  text-decoration: none; /*让链接的下划线消失*/
}

jQuery带来的方便:

1.在找被点击的菜单时,仅需要一个$(this)就可以实现

2.节点的显示与隐藏,只用一条语句:toggle()就可以,并且还可以在数组上实现所有节点都具有这种功能。

3.找到某个标签下所有的某种标签:$("ul > a")

Javascript 相关文章推荐
ExtJs grid行 右键菜单的两种方法
Jun 19 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
Jun 23 Javascript
Javascript字符串浏览器兼容问题分析
Dec 01 Javascript
js判断文本框剩余可输入字数的方法
Feb 04 Javascript
jQuery横向擦除焦点图特效代码分享
Sep 06 Javascript
AngularJS中的表单简单入门
Jul 28 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
Jan 20 Javascript
JavaScript JMap类定义与使用方法示例
Jan 22 Javascript
vue实现一拉到底的滑动验证
Jul 25 Javascript
从零搭一个自用的前端脚手架的方法步骤
Sep 23 Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 Javascript
Vue和React有哪些区别
Sep 12 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
Nov 27 #Javascript
Javascript实现滚动图片新闻的实例代码
Nov 27 #Javascript
讨论html与javascript在浏览器中的加载顺序问题
Nov 27 #Javascript
js替代copy(示例代码)
Nov 27 #Javascript
jQuery封装的获取Url中的Get参数示例
Nov 26 #Javascript
javascript的parseFloat()方法精度问题探讨
Nov 26 #Javascript
解决Extjs4中form表单提交后无法进入success函数问题
Nov 26 #Javascript
You might like
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
PHP Cookie学习笔记
2016/08/23 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
在python中使用正则表达式查找可嵌套字符串组
2017/10/24 Python
Anaconda入门使用总结
2018/04/05 Python
django表单的Widgets使用详解
2019/07/22 Python
pandas数据处理进阶详解
2019/10/11 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
哈弗商学院毕业生求职信
2014/02/26 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
公司接待方案
2014/03/08 职场文书
行政主管岗位职责
2015/02/03 职场文书
学生通报表扬范文
2015/05/04 职场文书
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers
dubbo服务整合zipkin详解
2021/07/26 Java/Android
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技