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吗?
Feb 24 Javascript
JavaScript Event学习补遗 addEventSimple
Feb 11 Javascript
Node.js(安装,启动,测试)
Jun 09 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
简单实现js浮动框
Dec 13 Javascript
vue.js学习笔记:如何加载本地json文件
Jan 17 Javascript
jquery动态赋值id与动态取id方法示例
Aug 21 jQuery
Vue.js自定义事件的表单输入组件方法
Mar 08 Javascript
微信小程序自定义底部弹出框
Nov 16 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
Jul 25 Javascript
使用localStorage替代cookie做本地存储
Sep 25 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
Feb 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
PHP 反向排序和随机排序代码
2010/06/30 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
javascript 面向对象思想 附源码
2009/07/07 Javascript
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
Python实用日期时间处理方法汇总
2015/05/09 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
分享vim python缩进等一些配置
2018/07/02 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
行政人员岗位职责
2013/12/08 职场文书
影视动画专业个人的自我评价
2013/12/31 职场文书
家长给老师的道歉信
2014/01/13 职场文书
服装设计专业自荐信
2014/06/17 职场文书
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技