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常考语句107条收集
Mar 09 Javascript
不要在cookie中使用特殊字符的原因分析
Jul 13 Javascript
JS函数重载的解决方案
May 13 Javascript
chrome下jq width()方法取值为0的解决方法
May 26 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
May 26 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
Dec 25 Javascript
jQuery中Chosen三级联动功能实例代码
Mar 07 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
May 11 Javascript
vue框架搭建之axios使用教程
Jul 11 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
JavaScript实现简单计算器功能
Dec 19 Javascript
Vue.js中使用Vuex实现组件数据共享案例
Jul 31 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模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
Js动态创建div
2008/09/25 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
Python中使用中文的方法
2011/02/19 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
Python对wav文件的重采样实例
2020/02/25 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
网络教育自我鉴定
2014/02/04 职场文书
十一酒店活动方案
2014/02/20 职场文书
环保倡议书
2014/04/14 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
2014年教研员工作总结
2014/12/23 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
社区重阳节活动总结
2015/03/24 职场文书
退伍军人感言
2015/08/01 职场文书
导游词之神仙居景区
2019/11/15 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL