基于jquery实现三级下拉菜单


Posted in Javascript onMay 10, 2016

本文实例为大家分享了jquery三级下拉菜单的具体实现代码,供大家参考,具体内容如下

在写这个的时候,首先要捋顺思路。点一个菜单的时候,其他的要闭合,点一级菜单的时候,二三级菜单要闭合,等等。
大致代码如下:

<body>
 <aside>
  <ul class="one">
   <li> <a href="#" class="a">目录A</a>
    <ul class="two" style="display: none">
     <li><a href="#" class="a">二级目录A</a>
      <ul class="three" style="display: none">
       <li><a href="#">三级目录A</a></li>
      </ul>
     </li>
     <li><a href="#" class="a">二级目录B</a></li>
     <li><a href="#" class="a">二级目录C</a></li>
    </ul>
   </li>
   <li> <a href="#" class="a">目录B</a>
    <ul class="two" style="display: none">
     <li><a href="#" class="a">二级目录A</a>
      <ul class="three" style="display: none">
       <li><a href="#">三级目录A</a></li>
      </ul>
     </li>
     <li><a href="#" class="a">二级目录B</a></li>
     <li><a href="#" class="a">二级目录C</a></li>
    </ul>
   </li>
   <li> <a href="#" class="a">目录C</a> </li>
  </ul>
 </aside>

//jQuery部分
<script src="js/jquery-1.8.3.min.js"></script>
<script>
  $(document).ready(function() {
   $('.a').click(function() {
    if ($(this).siblings('ul').css('display') == 'none') {
     $(this).siblings('ul').slideDown(100).children('li');
     if ($(this).parents('li').siblings('li').children('ul').css('display') == 'block') {
      $(this).parents('li').siblings('li').children('ul').slideUp(100);

     }
    } else {
     //控制自身菜单下子菜单隐藏
     $(this).siblings('ul').slideUp(100);
     //控制自身菜单下子菜单隐藏
     $(this).siblings('ul').children('li').children('ul').slideUp(100);
    }
   });
 });
</script>
</body>

如果要添加样式的话,一定要注意,否则菜单可能会出现错误。
完整代码地址:https://github.com/SabrinaTian/ThreeMenuNav.git
git里还有一个带有图标的案例,不点击的话是+号,菜单打开后,变为-号。
以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
超棒的javascript页面顶部卷动广告效果
Dec 01 Javascript
js 自定义的联动下拉框
Feb 07 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
Bootstrap组合上、下拉框简单实现代码
Mar 06 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
May 11 Javascript
Vue内容分发slot(全面解析)
Aug 19 Javascript
Vue父组件调用子组件事件方法
Feb 23 Javascript
浅谈Webpack下多环境配置的思路
Jun 27 Javascript
Vue中的vue-resource示例详解
Nov 02 Javascript
JavaScript用document.write()输出换行的示例代码
Nov 26 Javascript
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
javaScript Array api梳理
Mar 31 Javascript
jQuery Dialog对话框事件用法实例分析
May 10 #Javascript
bootstrap网页框架的使用方法
May 10 #Javascript
浅析Bootstrip的select控件绑定数据的问题
May 10 #Javascript
jQuery的文档处理程序详解
May 10 #Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
May 10 #Javascript
jQuery对象与DOM对象转换方法详解
May 10 #Javascript
jQuery对象的链式操作用法分析
May 10 #Javascript
You might like
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
php实现微信支付之企业付款
2018/05/30 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
理解JS事件循环
2016/01/07 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
js正则匹配多个全部数据问题
2019/12/20 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
python中关于for循环的碎碎念
2017/06/30 Python
Django 反向生成url实例详解
2019/07/30 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
html5与css3小应用
2013/04/03 HTML / CSS
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
小学综合实践活动总结
2014/07/07 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
2015感人爱情寄语
2015/02/26 职场文书
新店开张宣传语
2015/07/13 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js