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代码实现
46 1
|
29天前
|
JavaScript 前端开发
js+jquery实现贪吃蛇经典小游戏
本项目采用HTML、CSS、JavaScript和jQuery技术,无需游戏框架支持。通过下载项目文件至本地,双击index.html即可启动贪吃蛇游戏。游戏界面简洁,支持方向键控制蛇移动,空格键实现游戏暂停与恢复功能。
58 14
|
1月前
|
JavaScript 前端开发 容器
jQuery多功能滑块插件r-slider.js
r-slider.js是一款jQuery多功能滑块插件。使用该插件,可以制作出滑块、开关按钮、进度条、向导步骤等多种效果。
34 5
|
2月前
|
JavaScript 前端开发 开发者
jQuery:JavaScript库的瑰宝
jQuery:JavaScript库的瑰宝
62 3
|
1月前
|
JavaScript 定位技术
jQuery鹰眼视图小地图定位预览插件minimap.js
这是一个jQuery小地图定位预览视图,默认左侧是页面主要内容,minimap.js的好处就是在它的右侧形成一个快速定位通道,产生一个缩小版的页面,即预览效果,可以点击并快速定位到页面的某个位置。简单实用,欢迎下载!
36 0
|
2月前
|
JavaScript 前端开发 API
深入了解jQuery:快速、高效的JavaScript库
【10月更文挑战第11天深入了解jQuery:快速、高效的JavaScript库
36 0
|
2月前
|
JavaScript 前端开发
JavaScript - 测试 jQuery
JavaScript - 测试 jQuery
21 0
|
2月前
|
JavaScript 前端开发
JavaScript三级联动jQuery写法
JavaScript三级联动jQuery写法
|
2月前
|
JavaScript 前端开发
JavaScript 树状菜单栏jQuery写法
JavaScript 树状菜单栏jQuery写法
|
2月前
|
JavaScript 前端开发 API
【前端基础篇】JavaScript之jQuery介绍
【前端基础篇】JavaScript之jQuery介绍
109 0