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 继承实现方法
Aug 26 Javascript
表单的焦点顺序tabindex和对应enter键提交
Jan 04 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
Feb 17 Javascript
简单的分页代码js实现
May 17 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
Dec 22 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
Feb 22 Javascript
详解VueJs中的V-bind指令
May 03 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
Oct 25 Javascript
JavaScript实现Tab选项卡切换
Feb 13 Javascript
Javascript异步执行不按顺序解决方案
Apr 30 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 echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
2019/09/10 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
手把手教你python实现SVM算法
2017/12/27 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
python flask安装和命令详解
2019/04/02 Python
远程教育心得体会
2014/01/03 职场文书
助人为乐表扬信范文
2014/01/14 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
学校安全管理制度
2015/08/06 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
go web 预防跨站脚本的实现方式
2021/06/11 Golang