使用jquery实现的多级树形菜单代码实例

使用jquery实现的多级树形菜单代码实例:
树形菜单在网站中有大量的应用,这当然是因为它的独特优点,首先它可以有效的组织数据,使分类更为清晰明了,通常情况下树形菜单是可以折叠的,这样可以以更小的空间容纳更多的数据,下面就详细介绍一个使用jquery实现的属性菜单。
代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
h1, h2, h3, h4, h5, p, dl, dt, dd, ul, ol, li, input, img, body, button, form, table{
  margin:0;
  padding:0;
  border:0;
  list-style:none;
  font-size:12px;
  font-weight:normal
}
a{text-decoration:none}
a:link, a:visited{color:#333}
a:hover{background:#FC9}
.aside{
  width:163px;
  padding-left:10px
}
.aside h2{
  font-size:16px;
  padding-left:15px
}
.all{background:url(mytest/jQuery/bg_02.gif) no-repeat 0 6px;}
.all1{background:url(mytest/jQuery/bg_02.gif) no-repeat 0 -41px}
.box{background:url(mytest/jQuery/bg_02.gif) no-repeat 0 10px;}
.box1{background:url(mytest/jQuery/bg_02.gif) no-repeat 0 -37px}
.aside ul{margin-left:15px}
.aside li{
  display:none;
  height:24px;
  line-height:24px;
  margin-left:26px
}
.aside .bold{
  display:block;
  font-size:14px;
  height:30px;
  line-height:30px;
  padding-left:15px
}
</style>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $(‘.all1‘).toggle(function(){
    $(this).removeClass(‘all1‘).addClass(‘all‘).siblings(‘.myUl‘).slideUp();
  },function(){
    $(this).removeClass(‘all‘).addClass(‘all1‘).siblings(‘.myUl‘).slideDown();
  });
  $(‘.box‘).toggle(function(){
    $(this).removeClass(‘box‘).addClass(‘box1‘);
  },function(){
    $(this).removeClass(‘box1‘).addClass(‘box‘);
  });
  $(‘.bold‘).toggle(function(){
    $(this).siblings().slideDown();
  },function(){
    $(this).siblings().slideUp();
  })
})
</script>
</head>
<body>
<div class="aside">
  <h2 class="all1">KPI考核指标</h2>
  <ul class="myUl">
    <span class="bold box">当月考核结果</span>
    <li><a href="" title="" alt="">日考核结果跟踪</a></li>
    <li><a href="" title="" alt="">日考核扣分分析</a></li>
    <li><a href="" title="" alt="">日扣分占比分析</a></li>
    <li><a href="" title="" alt="">月扣分占比分析</a></li>
    <li><a href="" title="" alt="">考核异常跟踪</a></li>
  </ul>
  <ul class="myUl">
    <span class="bold box">年累计考核结果</span>
    <li><a href="" title="" alt="">月考核结果跟踪</a></li>
    <li><a href="" title="" alt="">年累计扣分分析</a></li>
    <li><a href="" title="" alt="">扣分占比分析</a></li>
  </ul>
  <ul class="myUl">
    <span class="bold box">数据统计</span>
    <li><a href="" title="" alt="">考核指标环比分析</a></li>
    <li><a href="" title="" alt="">考核指标扣分占比分析</a></li>
    <li><a href="" title="" alt="">考核指标趋势分析</a></li>
    <li><a href="" title="" alt="">考核指标排名分析</a></li>
    <li><a href="" title="" alt="">考核指标同比分析</a></li>
  </ul>
</div>
</body>
</html>

以上代码实现了我们的要求,可以实现属性菜单的折叠和展开效果,下面介绍一下它的实现过程。
一.实现原理:
1.折叠和展开图标的切换:
折叠和展开图标其实是在一张背景图上,当点击的时候,通过控制背景图片的位置就实现了切换效果,具体可以参阅CSS的background-position定位详解一章节。
2.菜单的折叠和隐藏:
菜单的折叠和隐藏主要是控制标题元素的兄弟元素的隐藏和显示实现的,这里不多介绍了,可以参阅相关阅读。
二.代码注释:
1.$(document).ready(function(){}),文档结构完全加载完毕再去执行函数中的代码。
2.$(‘.all1‘).toggle(function(){},function(){}),点击元素切换函数的执行。
3.$(this).removeClass(‘all1‘).addClass(‘all‘).siblings(‘.myUl‘).slideUp(),这是一个链式调用,首先会移出当前点击元素上的样式class属性all1,然后为再为其添加样式class属性all,然后将它的同辈元素中class属性值为myUl的元素收缩隐藏,一句话,这段代码实现了点击一级树,实现二级数树隐藏效果。
4.$(this).removeClass(‘all‘).addClass(‘all1‘).siblings(‘.myUl‘).slideDown(),此代码和上面的作用相反,点击一级树,实现二级数的显示效果。下面代码功能都是类似的,这里就不多介绍了。
三.相关阅读:
1.toggle()可以参阅jQuery的toggle()方法一章节。 
2.removeClass()函数可以参阅jQuery的removeClass()方法一章节。 
3.addClass()函数可以参阅jQuery的addClass()方法一章节。 
4.siblings()函数可以参阅jQuery的siblings()方法一章节。 
5.slideUp()函数可以参阅jQuery的slideUp()方法一章节。 
6.slideDown()函数可以参阅jQuery的slideDown()方法一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=11817

更多内容可以参阅:http://www.softwhy.com/jquery/

时间: 2024-08-10 02:10:22

使用jquery实现的多级树形菜单代码实例的相关文章

基于jQuery垂直多级导航菜单代码

基于jQuery垂直多级导航菜单代码是一款黑色风格的jQuery竖直导航菜单特效下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <ul class="ce"> <li> <a class="xz" href="#">目录A</a> </li> <li> <a href="#">目录B <img class=&qu

CSS3实现的横向二级下拉菜单代码实例

CSS3实现的横向二级下拉菜单代码实例:横向二级下拉菜单是非常常用的效果,例如很多网站的导航栏就是这样的二级下拉菜单效果,非常好用,本章节分享一段使用CSS3实现的下拉菜单,当然当下很多浏览器都不支持,不过相信用不了多久这种现状就会被改变.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content

jquery实现的选项卡的嵌套代码实例

jquery实现的选项卡的嵌套代码实例:关于选项卡功能大家一定都不会陌生,无非就是鼠标点击或者悬浮能够切换相关的内容.通常情况下,大家见到的选项卡都是没有嵌套功能的,也就是说就是完成了一层切换效果,本章节分享一段代码实例,实现了选项卡的嵌套功能,也就是选项卡中嵌套有选项卡功能,也就能够容纳更多的内容.代码如下: <!DOCTYPE html><html> <head> <meta charset=" utf-8"> <meta na

xmlTree标签树形菜单应用实例:B2C网站部门管理

轻开B2C电子商务网站的部门(组织机构)管理是一个典型的树形菜单应用实例,效果如图 下边介绍一下简单的实现流程 1.存储部门信息的xml文件(轻开B2C电子商务网站base目录下的base/dept.xml文件) <?xml version="1.0" encoding="GBK"?> <D act="base/xml/DShow.html" color="red" weName="小时代"

Android 多级树形菜单

在Android里要实现树形菜单,都是用ExpandableList(也有高手自己继承ListView或者LinearLayout来做),但是ExpandableList一般只能实现2级树形菜单......本文也依然使用ExpandableList,但是要实现的是3级树形菜单.本文程序运行效果图: 当用BaseExpandableListAdapter来实现二级树形菜单时,父项(getGroupView())和子项(getChildView())都是使用TextView.当要实现三级树形菜单时,

jquery实现的三级导航菜单实例代码

jquery实现的三级导航菜单实例代码:使用最多的可能是二级导航菜单,所以网上的代码一大堆,三级菜单的代码也很多,不过相对较少一些,本章节通过一个代码实例详细介绍一下三级导航菜单的实现过程,代码如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta nam

jQuery医疗美容项目分类多项筛选菜单代码

<!DOCTYPE HTML><html lang="en-US"><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><script src="jquery-1.8.3.min.js"></script><styl

模拟实现链接title效果代码实例

模拟实现链接title效果代码实例: 自带的的链接的title属性的效果确实太难看了,对没关效果要求稍高的网站都要进行自定义的title效果,下面就介绍一下jquery如何实现此效果,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.c

JavaScript+CSS多级树形展开菜单的代码

JavaScript+CSS多级树形展开菜单的代码,本例是应用别人的例子,原来那位老兄是用一般方法写成的无限级折叠菜单,在此先感谢他!后来我就通过了一些简化修改,将原来的例子改成了面向对象的方式,实例中的展开与闭合的小图标可以自己重新添加,从而更好的查看效果. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra