jQuery入门学习六:可收缩展开的级联菜单

来源:互联网 发布:mac 链接无线键盘 编辑:程序博客网 时间:2024/04/28 13:13

本文的内容基本来自itcast上的视频教程,所用示例也基本是那上面的例子

如果用纯JavaScript代码而不使用框架的话,那么做一个级联菜单也许是一件让人生畏的事情,但有了框架,这件事情就很容易了,这就是框架的好处,极大地提高了开发效率,并且更可靠和易于维护。使用jQuery来实现级联菜单的一般步骤如下:

  • 1.首先使用<ul>和<li>创建一个级联菜单

[xhtml] view plaincopyprint?
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
  2.         "http://www.w3.org/TR/html4/loose.dtd">  
  3. <html>  
  4. <head>  
  5.   <title>itcast.cn的JQuery应用示例:弹出菜单</title>  
  6.   <link type="text/css" rel="stylesheet" href="css/menu.css" mce_href="css/menu.css" />  
  7.   <mce:script type="text/javascript" src="jslib/jquery.js" mce_src="jslib/jquery.js"></mce:script>  
  8.   <mce:script type="text/javascript" src="jslib/jquerymenu.js" mce_src="jslib/jquerymenu.js"></mce:script>  
  9. </head>  
  10. <body>  
  11.     <ul>  
  12.         <a href="#" mce_href="#">我是菜单1</a>  
  13.         <li><a href="#" mce_href="#">我是子菜单1</a></li>  
  14.         <li><a href="#" mce_href="#">我是子菜单2</a></li>  
  15.     </ul>  
  16.     <ul>  
  17.         <a href="#" mce_href="#">我是菜单2</a>  
  18.         <li><a href="#" mce_href="#">我是子菜单3</a></li>  
  19.         <li><a href="#" mce_href="#">我是子菜单4</a></li>  
  20.     </ul>  
  21. </body>  
  22. </html>  

  • 2.编写JavaScript代码,控制级联菜单的收缩

[javascript] view plaincopyprint?
  1. //需要点击主菜单的按钮时,对应的子菜单可以显示,再次点击子菜单则隐藏  
  2. //需要编写代码,在页面装载时,给所有的主菜单添加onclick的事件  
  3. //保证主菜单点击时可以显示或隐藏子菜单  
  4. //注册页面装载时执行的方法  
  5. $(document).ready(function() {  
  6.     //这里需要首先找到所有的主菜单  
  7.     //然后给所有的主菜单注册点击事件  
  8.     //找到ul中的节点  
  9.     var as = $("ul > a");  
  10.     as.click(function() {  
  11.         //这里需要找到当前ul中的li,然后让li显示出来  
  12.         //获取当前被点击的a节点  
  13.         var aNode = $(this);  
  14.         //找到当前a节点的所有li兄弟字节点  
  15.         var lis = aNode.nextAll("li");  
  16.         //让子节点显示或隐藏  
  17.         lis.toggle("show");  
  18.     });  
  19. });  

  • 创建css文件,来控制标签的显示效果

[css] view plaincopyprint?
  1. /*如何让所有的li都不显示小圆点,可以使用css的标签选择器*/  
  2. li {  
  3.     list-stylenone/*使li前面的小圆点消失*/  
  4.     margin-left18px/*让子菜单向右移动一段距离,达到缩进的效果*/  
  5.     displaynone/*让所有的子菜单都先隐藏*/  
  6. }  
  7. a{  
  8.   text-decorationnone/*让链接的下划线消失*/  
  9. }  

 

jQuery带来的方便:

  1. 在找被点击的菜单时,仅需要一个$(this)就可以实现
  2. 节点的显示与隐藏,只用一条语句:toggle()就可以,并且还可以在数组上实现所有节点都具有这种功能。
  3. 找到某个标签下所有的某种标签:$("ul > a")
0 0
原创粉丝点击