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代码实现
43 1
|
2月前
|
JavaScript 前端开发 开发者
jQuery:JavaScript库的瑰宝
jQuery:JavaScript库的瑰宝
47 3
|
1月前
|
JavaScript 定位技术
jQuery鹰眼视图小地图定位预览插件minimap.js
这是一个jQuery小地图定位预览视图,默认左侧是页面主要内容,minimap.js的好处就是在它的右侧形成一个快速定位通道,产生一个缩小版的页面,即预览效果,可以点击并快速定位到页面的某个位置。简单实用,欢迎下载!
31 0
|
2月前
|
JavaScript 前端开发 API
深入了解jQuery:快速、高效的JavaScript库
【10月更文挑战第11天深入了解jQuery:快速、高效的JavaScript库
23 0
|
2月前
|
JavaScript 前端开发
JavaScript - 测试 jQuery
JavaScript - 测试 jQuery
14 0
|
2月前
|
JavaScript 前端开发
JavaScript三级联动jQuery写法
JavaScript三级联动jQuery写法
|
2月前
|
JavaScript 前端开发
JavaScript 树状菜单栏jQuery写法
JavaScript 树状菜单栏jQuery写法
|
2月前
|
JavaScript 前端开发 API
【前端基础篇】JavaScript之jQuery介绍
【前端基础篇】JavaScript之jQuery介绍
64 0
|
4月前
|
JavaScript
分别用jquery和js修改页面元素
分别用jquery和js修改页面元素
38 2
|
4月前
|
JavaScript Java
点击按钮,向下添加目录。Java script+jQuery写法
点击按钮,向下添加目录。Java script+jQuery写法
26 1