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 相关文章推荐
动态加载js文件 document.createElement
Oct 14 Javascript
javascript面向对象编程(一) 实例代码
Jun 25 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 Javascript
无刷新上传文件并返回自定义值
Jun 11 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
Aug 21 Javascript
深入浅出ES6之let和const命令
Aug 25 Javascript
浅谈Node.js:fs文件系统模块
Dec 08 Javascript
Angular X中使用ngrx的方法详解(附源码)
Jul 10 Javascript
vue使用xe-utils函数库的具体方法
Mar 06 Javascript
AngularJs分页插件使用详解
Jun 30 Javascript
Element Dropdown下拉菜单的使用方法
Jul 26 Javascript
vue实现简易音乐播放器
Aug 14 Vue.js
利用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的安全策略
2006/10/09 PHP
如何开发一个虚拟域名系统
2006/10/09 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
python字符串与url编码的转换实例
2018/05/10 Python
详解【python】str与json类型转换
2019/04/29 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
企业贷款委托书格式
2014/09/12 职场文书
医院护士工作检讨书
2014/10/26 职场文书
2014年医务科工作总结
2014/12/18 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
婚宴父亲致辞
2015/07/27 职场文书
体育部部长竞选稿
2015/11/21 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
React更新渲染原理深入分析
2022/12/24 Javascript