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 相关文章推荐
javascript js cookie的存储,获取和删除
Dec 29 Javascript
Fixie.js 自动填充内容的插件
Jun 28 Javascript
JQuery触发事件例如click
Sep 11 Javascript
js获取和设置属性的方法
Feb 20 Javascript
jQuery的animate函数学习记录
Aug 08 Javascript
浅谈javascript中字符串String与数组Array
Dec 31 Javascript
javascript简单实现类似QQ头像弹出效果的方法
Aug 03 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
Oct 19 Javascript
AngularJS遍历获取数组元素的方法示例
Nov 11 Javascript
使用Nuxt.js改造已有项目的方法
Aug 07 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 Javascript
微信小程序实现星星评分效果
Nov 01 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
php一次性删除前台checkbox多选内容的方法
2013/09/22 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
非常好的js代码
2006/06/27 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
python利用7z批量解压rar的实现
2019/08/07 Python
Python requests获取网页常用方法解析
2020/02/20 Python
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
应届生服务员求职信
2013/10/31 职场文书
单位实习证明怎么写
2014/01/17 职场文书
保险公司晨会主持词
2014/03/22 职场文书
横幅标语大全
2014/06/17 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
公司食堂管理制度
2015/08/05 职场文书
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
如何Tomcat中使用ipv6地址
2022/05/06 Servers
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python