js+jquery实现树状目录

简介: js+jquery实现简单的树状目录。html内容,css样式,js逻辑已经贴出。拿来即用。

依赖jquery需要先导入jquery

style样式

ul,
li,
i {
  list-style: none;
  padding: 0;
  margin: 0;
  font-style: normal;
}
i {
  width: 14px;
  height: 14px;
  float: left;
}
.box {
  width: 100%;
  max-width: 300px;
  margin: 0 auto;
}
.nav-ml {
  width: 100%;
}
.nav-ml ul {
  margin-left: 20px;
}
.nav-ml i {
  width: 14px;
  height: 14px;
  background: url(images/add.png) no-repeat 0 0;
  margin-right: 10px;
}
.nav-ml i.unfold {
  width: 14px;
  height: 14px;
  background: url(images/minus.png) no-repeat 0 0;
}
.nav-ml a {
  display: block;
  font-size: 14px;
  height: 20px;
  padding: 3px 0;
  color: #666;
  overflow: hidden;
}
.nav-first,
.nav-second,
.nav-three {
  margin-left: 20px;
}
.nav-three li {
  background: url(images/dot.png) no-repeat 0 12px;
  padding-left: 10px;
}
.fold {
  display: none;
}
.nav-three li:hover {
  background-color: #fffceb;
}

html内容

  <div class="nav-ml">
    <ul>
      <li>
        <ul class="nav-first">
          <li>
            <a class="item-1"><i></i>文书档案</a>
            <ul class="nav-second fold ">
              <li>
                <a class="item-2"><i></i>行政工作</a>
                <ul class="nav-three fold">
                  <li><a>2019年行政工作行政财务报告</a></li>
                  <li><a>2019年行政工作行政财务报告</a></li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
      <li>
        <ul class="nav-first">
          <li>
            <a class="item-1"><i></i>会计档案</a>
            <ul class="nav-second fold ">
              <li>
                <a class="item-2"><i></i>会计工作</a>
                <ul class="nav-three fold">
                  <li><a>报告</a></li>
                  <li><a>报告</a></li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
      <li>
        <ul class="nav-first">
          <li>
            <a class="item-1"><i></i>资产档案</a>
            <ul class="nav-second fold ">
              <li>
                <a class="item-2"><i></i>资产工作</a>
                <ul class="nav-three fold">
                  <li><a>报告</a></li>
                  <li><a>报告</a></li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
      <li>
        <ul class="nav-first">
          <li>
            <a class="item-1"><i></i>文件档案</a>
            <ul class="nav-second fold ">
              <li>
                <a class="item-2"><i></i>文件工作</a>
                <ul class="nav-three fold">
                  <li><a>报告</a></li>
                  <li><a>报告</a></li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
      <li>
        <ul class="nav-first">
          <li>
            <a class="item-1"><i></i>设备档案</a>
            <ul class="nav-second fold ">
              <li>
                <a class="item-2"><i></i>设备工作</a>
                <ul class="nav-three fold">
                  <li><a>报告</a></li>
                  <li><a>报告</a></li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
  </div>
</div>

script


var tree = [
  {
    text: "文书档案 1",
    nodes: [
      {
        text: "子节点 1",
        nodes: [
          {
            text: "孙节点 1",
            nodes: [
              {
                text: "子节点 1"
              },
              {
                text: "子节点 2"
              }
            ]
          },
          {
            text: "子节点 2"
          }
        ]
      },
      {
        text: "子节点 2"
      }
    ]
  },
  {
    text: "文书档案 2"
  },
  {
    text: "文书档案 3"
  },
  {
    text: "文书档案 4"
  },
  {
    text: "文书档案 5"
  }
];
// 树点击事件
$(".item-1").click(function() {
  $(this)
    .parent()
    .find(".nav-second")
    .slideToggle(500);
  $(this)
    .children("i")
    .toggleClass("unfold");
});
$(".item-2").click(function() {
  $(this)
    .parent()
    .find(".nav-three")
    .slideToggle(500);
  $(this)
    .children("i")
    .toggleClass("unfold");
});

目录
相关文章
|
4天前
|
JavaScript
鼠标事件(点击换色)分别使用js和jQuery代码实现
鼠标事件(点击换色)分别使用js和jQuery代码实现
12 1
|
4天前
|
JavaScript Java
点击按钮,向下添加目录。Java script+jQuery写法
点击按钮,向下添加目录。Java script+jQuery写法
8 1
|
4天前
|
JavaScript Java
分别使用js与jquery写 单击按钮时出现内容 点击删除按钮不会再向下出现
分别使用js与jquery写 单击按钮时出现内容 点击删除按钮不会再向下出现
9 1
|
8天前
|
JavaScript 前端开发 开发者
jQuery:JavaScript库的瑰宝
jQuery:JavaScript库的瑰宝
19 4
|
4天前
|
JavaScript Java
分别使用java script和jQuery添加页面元素
分别使用java script和jQuery添加页面元素
6 0
|
6天前
|
JavaScript 前端开发
Bootstrap‘s JavaScript requires jQuery
文章讨论了网页开发中因jQuery库未正确引入或顺序不当导致的三个常见错误,并指出解决这些问题需要确保jQuery在其他依赖它的脚本之前加载。
|
2月前
|
移动开发 JavaScript 前端开发
rem的适配方案,css文件和js文件的引入方式,特色小边框的制作,DS-Digital.ttf数字展示屏的使用方法:,自适应图片 background-size,jQuery爆bug,a和盒子居中,
rem的适配方案,css文件和js文件的引入方式,特色小边框的制作,DS-Digital.ttf数字展示屏的使用方法:,自适应图片 background-size,jQuery爆bug,a和盒子居中,
|
2月前
|
JavaScript 前端开发
js,jq,jquery删除css属性
js,jq,jquery删除css属性
23 0
|
2月前
|
JavaScript 前端开发
杨校老师课堂之Web前端JS类库_JQuery案例[效果图与代码齐全]
杨校老师课堂之Web前端JS类库_JQuery案例[效果图与代码齐全]
25 0
|
Web App开发 JavaScript 前端开发