<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title>Tree Menu</title>

</head>

<body>

  <divclass="lmenu">

    <ul>

      <liaid="26">

        <span> <emclass="icoopen"></em>

          一级标题

        </span>

        <ulstyle="display: none;">

          <liaid="27"> <emclass="iconleaf"></em>

            二级标题

          </li>

          <liaid="28">

            <emclass="iconleaf"></em>

            二级标题

          </li>

          <liaid="29">

            <emclass="iconleaf"></em>

            二级标题

          </li>

        </ul>

      </li>

      <liaid="1">

        <span>

          <emclass="icoclose"></em>

          一级标题

        </span>

        <ulstyle="display: block;">

          <liaid="4">

            <emclass="iconleaf"></em>

            二级标题

          </li>

          <liaid="2">

            <emclass="iconleaf"></em>

            二级标题

          </li>

          <liaid="8">

            <span>

              <emclass="icoclose2"></em>

              二级标题

            </span>

            <ul>

              <liaid="10">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

              <liaid="3">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

            </ul>

          </li>

          <liaid="5">

            <span>

              <emclass="icoclose2"></em>

              二级标题

            </span>

            <ul>

              <liaid="7">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

              <liaid="6">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

            </ul>

          </li>

        </ul>

      </li>

      <liaid="11">

        <span>

          <emclass="icoclose"></em>

         一级标题

        </span>

        <ul>

          <liaid="17">

            <span>

              <emclass="icoclose2"></em>

              二级标题

            </span>

            <ul>

              <liaid="25">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

              <liaid="23">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

              <liaid="22">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

            </ul>

          </li>

          <liaid="12">

            <span>

              <emclass="icoclose2"></em>

              二级标题

            </span>

            <ul>

              <liaid="15">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

              <liaid="16">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

              <liaid="14">

                <emclass="iconleaf2"></em>

                三级标题

              </li>

            </ul>

          </li>

        </ul>

      </li>

    </ul>

  </div>

  <style>

*{

margin: 0;

padding: 0;

  }

.icoopen , .icoopen2 , .icoclose , .icoclose2 , .iconleaf , .iconleaf2 ,.lmenuullispan ,.search-sidebutton{background: url("doc.png") no-repeat00;width: 9px;height: 9px;top: 9px;}

.lmenuli{list-style: none;}

.lmenuem {display: block;position: absolute;cursor: pointer;}

.icoopen{left: 28px;background-position: 0-39px;}

.icoopen2{left: 42px;background-position: -46px-88px;}

.icoclose{left: 28px;background-position: -45px-39px;}

.icoclose2{left: 42px;background-position: 0-88px;}

.iconleaf , .iconleaf2{width: 3px;height: 5px;background-position: -87px-41px;}

.iconleaf {left: 47px;top: 11px;}

.iconleaf2 {left: 72px;top: 10px;}

.search-side{

width: 250px;

border-radius: 5px;

position: relative;

background-color: #FFFFFF;

border: 1pxsolid#ddd;

height: 36px;

line-height: 36px;

  }

.search-sidebutton{

background-position: 00;

border: 0none;

cursor: pointer;

display: block;

height: 16px;

width: 16px;

position: relative;

left: 11px;

  }

.search-boxinput{

position: absolute;

top: 11px;

background-color: transparent;

border: mediumnone;

color: #AFB0B0;

height: 16px;

margin-left: 37px;

outline: mediumnone;

width: 200px;

  }

.lmenu{

width: 250px;

height: auto;

overflow: hidden;

font-family: "宋体",Tahoma, Helvetica, "Microsoft Yahei", "微软雅黑", Arial, STHeiti;

margin-bottom: 10px;

border: 1pxsolid#ddd;

border-radius: 5px;

  }

.lmenuulli{

position: relative;

cursor: pointer;

  }

.lmenuulliul{

max-height: 350px;

overflow: auto;

  }

.lmenuulliulliul{

height: auto;

  }

.lmenuullispan{

display: block;

width: 100%;

height: 28px;

line-height: 28px;

text-indent: 3em;

/*font-weight: bolder;*/

font-size: 14px;

color: #0E3E5E;

border-bottom: 1pxsolid#D7D7D7;

background-position: -46px0;

  }

.lmenuulliulli , .lmenuulliullispan{

/*background-color: #F7F8F8;*/

background-color: #FFFFFF;

color: #333;

text-indent: 5em;

font-size: 13px;

height: auto;

line-height: 28px;

  }

.lmenuulliullispan{

background:none;

  }

.lmenuulliulliulli{

border:none;

text-indent: 7em;

font-size: 12px;

font-weight: normal;

height: 24px;

line-height: 24px;

  }

  </style>

  <scripttype="text/javascript"src="jquery-3.2.1.js"></script>

  <script>

$(function() {

loadMenu(function (id){

// window.location= "";此处指定关于aid的链接

        });

      });

/*传入一个函数参数为 id 即li上的属性 aid*/

functionloadMenu (fun_clickAction) {

/*事件回调函数*/

      clickAction = fun_clickAction;

/*一级菜单的样式*/

$(".lmenu > ul > li > span").prepend('<em class="icoclose"></em>');

/*二级菜单的样式*/

$(".lmenu > ul > li > ul > li").each(function(){

/*检查是否有节点*/

        span =$(this).find("span"); 

if ( span.length ){

//有节点的话

          span.prepend('<em class="icoclose2"></em>');

        }else{

//无节点的话,绑定事件

$(this).prepend('<em class="iconleaf"></em>')

               .click(function(){

clickAction($(this).attr('aid'));

               });

        }

      });

/*三级菜单的样式*/

$(".lmenu > ul > li > ul > li > ul > li")

        .prepend('<em class="iconleaf2"></em>')

        .click(function(){

clickAction($(this).attr('aid'));

        });

$(".lmenu ul li span").click(function(){

var ye =$(this).find('em');

        classNama = ye.attr("class");

if( classNama =='icoclose'){ye.attr('class','icoopen');}

elseif( classNama =='icoopen' ){ye.attr('class','icoclose');}

elseif( classNama =='icoclose2'){ye.attr('class','icoopen2');}

elseif( classNama =='icoopen2' ){ye.attr('class','icoclose2');}

$(this).siblings("ul").slideToggle("normal","swing");

      });

    }

  </script>

</body>

</html>

用Jquery去写树结构的更多相关文章

  1. Jquery 随便写些知识点

    针对jQuery随便写些觉得还挺实用的一些东西,也没系统的去理一番,只是想到哪写到哪,写的不完全也请多见谅. jQuery和其他javascript库产生$符号冲突了?$符号想必用jQuery的人都不 ...

  2. 用node.js从零开始去写一个简单的爬虫

    如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定, ...

  3. JQuery去实现校验用户名

    JQuery 是什么? javascript 的代码框架. 有什么用? 简化代码,提高效率. 核心 write less do more , 写得更少,做的更多. load //找到这个元素, 去执行 ...

  4. 如果简单的记录,就可以为这个世界创造更多的财富,那么还有什么理由不去写博客呢? — 读<<黑客与画家>> 有感

    上一次博文发文时间是2016.1.15,7个月已经过去了.最近读了一本<>的书,对我触动挺大的!里面有关于技术趋势的探讨,也有关于人生和财富的思考! 开始更新iOS122的文章的初衷是,聚 ...

  5. 【转载】这样去写你的HTML

    昨天在 twitter 上说,怎么忍心把页面写得这么难用?是的,这个世界还有一群人等着我们创建出来的东西,可以让他们的生活能过得更容易呢.比如那些需要读屏软件的用户.作为一个前端,我们又怎么会忍心呢. ...

  6. ***使用jQuery去封装插件(组件化、模块化的思想),即扩展方法

    如何使用jQuery去封装插件,区分扩展全局方法与扩展一个普通的jQuery实例对象的方法 1.给全局对象扩展方法:①$.方法 = function(参数可加可不加){}  ②使用:$.方法(有参数的 ...

  7. 如何在嵌套的app中运用vue去写单页面H5

    本文主要介绍移动端.为了避免移动端兼容出现各种奇奇怪怪的bug,所以秉承着能不用复杂的语法就不用,尽量用最基础的语法. 可用惯了各种ES6语法的童鞋们,写原生真是头疼,再加上各种领导催工期,肯定是内心 ...

  8. jquery 连写注释;siblings() 方法;jQuery 的3种滑动方法;slideUp()向上滑动;slideDown()向下滑动;slideToggle()来回滑动

    首先我们看两个连写注释 第一个:   /* 点击头像,显示基本资料 */ $(".f-chatTit a.avatar").click(function(){ $(this).hi ...

  9. jquery 手写一个简单浮窗的反面教材

    前言 初学jquery写的代码,陈年往事回忆一下. 正文 介绍一下大体思路 思路: 1.需要控制一块区域,这块区域一开始是隐藏的. 2.这个区域需要关闭按钮,同时我需要写绑定事件,关闭的时候让这块区域 ...

随机推荐

  1. D05——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D05 20180815内容纲要: 1 模块 2 包 3 import的本质 4 内置模块详解 (1)time&datetime (2)datetime ...

  2. 数据库MySQL(课下作业,必做)

    数据库MySQL(课下作业,必做) 题目要求: 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入 ...

  3. python3 使用 zabbix_client模块

    除了上一篇使用自己定义的函数,我们还可使用pipy提供的zabbix_client模块,这样就不用我们自己去写登录函数,只要在模块开始指定用户名密码即可,方便很多. #!/usr/bin/env py ...

  4. cat /proc/sys/net/ipv4/ip_forward 0 解决办法

    [root@localhost java]# cat /proc/sys/net/ipv4/ip_forward 出于安全考虑,Linux系统默认是禁止数据包转发的. 所谓转发即当主机拥有多于一块的网 ...

  5. Java之IO(六)FileInputStream和FileOutputStream

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7001458.html 1.前言 前五章按照JDK的类顺序介绍了几种流,第五章讲了Java的文件系统.本章介绍Ja ...

  6. python的 del 函数是删对象还是删引用

    1.首先介绍下python的对象引用 1)Python中不存在传值调用,一切传递的都是对象引用,也可以认为是传址调用.即Python不允许程序员选择采用传值或传引用.Python参数传递采用的是“传对 ...

  7. ASP.NET站点Windows身份验证集成AD域,非LDAP

    站点集成AD域验证 服务器机器入域 计算机右键属性-->“更改设置”-->“更改”-->填写所属域,确认后重启机器生效. 部署测试站点,localhost.ip.域名三种方式登录效果 ...

  8. RSNAKE 的 Slowloris DOS攻击工具初试

    Slowloris 号称低带宽对服务器进行DDOS攻击 原理就是对WEB服务器发送 不完整的包并且以 单一  \r\n结尾,并不是 完整的HTTP包.造成WEB服务器堵塞达到最大连接数. 官网给出介绍 ...

  9. 《Android应用性能优化》3——电量、渲染

    7.延长电池续航时间 尽管应用有时看起来没做多少事,但实际上可能会很耗电,运行不了多久就会把电量榨干,使设备开机不到半天就没电了.那些被归为“电池杀手”的应用,最终的宿命就是被删除.得差评.不挣钱.因 ...

  10. bootstrap table 修改table内容时设置表头与表格对齐

    第一:取消表头初始化解决表头和内容不对齐问题,取消后表头将不固定. 在你对应的js(bootstrap-table.min.js或bootstrap-table.js,我用的bootstrap-tab ...