由简入繁实现Jquery树状结构的方法(推荐)


Posted in Javascript onJune 10, 2016

在项目中,我们经常会需要一些树状结构的样式来显示层级结构等,比如下图的样式,之前在学.net的时候可以直接拖个服务端控件过来直接使用非常方便。但是利用Jquery的一些插件,也是可以实现这些效果的,比如说Jquery.treeview.js插件。

由简入繁实现Jquery树状结构的方法(推荐)

下面就直入主题,开始从简入繁的分析怎么使用treeview插件,从已知的知识开始轻松入手,让树状结构唾手可得。 

显示树状结构的几个实现步骤:

一、HTML做初始静态原型。

首先通过<ul></ul><li></li>展示树状基本结构,还原其最初的样子:

相信学过一点HTML的同学都可以实现吧,在“tree.html”中写如下代码:

<ul>
    <li>系统管理
      <ul>
        <li>部门管理</li>
        <li>岗位管理
          <ul>
            <li>岗位添加</li>
            <li>岗位删除</li>
          </ul>
        </li>
        <li><用户管理
          <ul>
            <li>添加用户</li>
            <li>修改用户</li>
          </ul>
        </li>
      </ul>
    </li>
    <li>审批流转</li>
  </ul>

我们静态的树形结构的草本如下:

由简入繁实现Jquery树状结构的方法(推荐)

二、加入treeview插件库,实现动态树状结构。

在有了基本静态的树状模型以后,我们需要实现一个动态的结构,那么,我们的大菜就要上场了。

1、首先搜索Jquery.treeview.js插件进行下载,或直接进入下面的网址进行下载插件包:

http://bassistance.de/jquery-plugins/jquery-plugin-treeview/

2、下载压缩包解压到相应文件夹内,将之间的静态页面tree.html放到根目录下:

由简入繁实现Jquery树状结构的方法(推荐)

3、在tree.html中导入js和css文件。

<!-- 导入js和CSS-->
<link rel="stylesheet" href="jquery.treeview.css" />
<script src="lib/jquery.js" type="text/javascript"></script>
<script src="lib/jquery.cookie.js" type="text/javascript"></script>
<script src="jquery.treeview.js" type="text/javascript"></script>

4、使用<ul>展示数据,为了方便得到树,在最外边的<ul>标签里加入Id为tree,如下

由简入繁实现Jquery树状结构的方法(推荐)

5、显示我们的树状结构(加上行为)。

在js里,我们只需要一行代码:

在<ul></ul>标签下加入js代码:

<script type="text/javascript">  $("#tree").treeview();  </script>

我们的动态的树状结构的初步样式如下,已经可以自由的收起和展示了:

由简入繁实现Jquery树状结构的方法(推荐)

6、显示树状结构(加上样式)。

上面的样式离我们最初想要的结果还差一点样式,比如说各项之前的文件夹图标。下面我们可以加上样式,从而完成整个树状结构的展示。

6.1在树的根节点<ul>标签中加入 class="filetree"。

6.2在各项节点前加入文件夹<span>标签:比如:<span class="folder">系统管理</span>。

整体tree.html代码如下:

<!DOCTYPE html pageEncoding="utf-8">
<html>
 <head>
  <title>tree.html</title>
  
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="this is my page">
  <meta http-equiv="content-type" content="text/html; charset=GB2312">
  <!-- 导入js和CSS-->
  <link rel="stylesheet" href="jquery.treeview.css" />
  <script src="lib/jquery.js" type="text/javascript"></script>
  <script src="lib/jquery.cookie.js" type="text/javascript"></script>
  <script src="jquery.treeview.js" type="text/javascript"></script>

 </head>
 
 <body>
  <ul id="tree" class="filetree">
    <li><span class="folder">系统管理</span>
      <ul>
        <li><span class="folder">部门管理</span></li>
        <li><span class="folder">岗位管理</span>
          <ul>
            <li><span class="folder">岗位添加</span></li>
            <li><span class="folder">岗位删除</span></li>
          </ul>
        </li>
        <li><span class="folder">用户管理</span>
          <ul>
            <li><span class="folder">添加用户</span></li>
            <li><span class="folder">修改用户</span></li>
          </ul>
        </li>
      </ul>
    </li>
    <li><span class="folder">审批流转</span></li>
  </ul>
  
  <script type="text/javascript">
  $("#tree").treeview();
  </script>
 </body>
</html>

最后的样式展示:

由简入繁实现Jquery树状结构的方法(推荐)

需求完成啦!

当然树状结构的样式有多种多样,也可以实现动态的添加节点分支等等,大家可以在下载的插件里找demo文件下的例子看一下,很容易的。

第一次实现树状结构,一开始的心情有些恐惧,也是没有头绪,感觉要通过js写下一个树状结构也是有些难度的,虽说toggle方法也可以实现指定区域的收缩(隐藏)和展示,加上动态变换文件夹等图标的样式也是可以实现的,但是一想就觉得太麻烦了。所以在做OA的时候,老师提到了Jquery的treeview插件很好使,上网查询它的官方资料竟然查到了一大堆插件,作为插件控的同学们一定很兴奋吧,有一种刘姥姥进大观园的感觉。而且实现起来非常简单,从已知的知识入手,由简入繁,轻松掌握了所有Jquery插件的使用。这就是米老师说的所谓的吃饭理论吧:一个人被邀请去参加一个饭局,发现饭局中只认识那个邀请自己的人,有些人会觉得饭局很无聊,很惆怅,或退场,或自娱自乐。但是聪明的人会通过那个唯一自己认识的人而认识整个饭局的人,从而结识了一大帮朋友。我们学习也是一样的,由我们已知的知识带领我们走进未知世界,战胜恐惧和胆怯,相信没有什么实现不了事情吧。

以上这篇由简入繁实现Jquery树状结构的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
Jun 06 Javascript
window.open 以post方式传递参数示例代码
Feb 27 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
Oct 29 Javascript
JavaScript操作cookie类实例
Mar 31 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
May 03 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
Jul 08 Javascript
html+js+highcharts绘制圆饼图表的简单实例
Aug 04 Javascript
echarts3 使用总结(绘制各种图表,地图)
Jan 05 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
Jan 12 Javascript
Koa2微信公众号开发之消息管理
May 16 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
Sep 18 Javascript
Vue SPA 初次进入加载动画实现代码
Nov 14 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
Jun 10 #Javascript
关于网页中的无缝滚动的js代码
Jun 09 #Javascript
Document.body.scrollTop的值总为零的快速解决办法
Jun 09 #Javascript
JavaScript事件学习小结(三)js事件对象
Jun 09 #Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
Jun 09 #Javascript
JavaScript事件学习小结(一)事件流
Jun 09 #Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
Jun 09 #Javascript
You might like
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python复制与引用用法分析
2015/04/08 Python
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
通过Python编写一个简单登录功能过程解析
2019/09/04 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
数控专业个人求职信范文
2014/02/05 职场文书
六一儿童节标语
2014/10/08 职场文书
大学生见习报告范文
2014/11/03 职场文书
同意离婚答辩状
2015/05/22 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
CSS3实现指纹特效代码
2022/03/17 HTML / CSS