第二篇:怕碰到是因为没掌握,来吧,zTree!
一直以来看见web项目中的树就头疼。这次又给碰上了,什么也别说,这次自己整理一个版本出来实践一下。
zTree v3.2的API界面非常清爽,但是在查看API之前,你需要自己先实践一下,知道基本的概念和约定的符号
怕毛线,直接来吧,首先简要介绍下zTree,只因为这个jQuery插件目前非常非常火,非常非常灵活,所以其他的
Tree插件我就 不去了解了,原理应该相通
zTree,是一个依靠jQuery的树插件,开源免费(开源就是好~~),尤其是用在树状菜单,权限管理(比如部门层级
这样的场景),随便搜一下,zTree的粉丝真是多,至少还要火好一段时间!
下面开始做一个简单的zTree
第一步:
下载zTree的插件,刚刚说了,他是一个jQuery插件,所以不要忘了jQuery这个引用
比如我下载了一个压缩文件zTree-zTree_v3-master.zip,解压后有四个文件夹,api,css,demo,js,其中js中已经下载有
jquery-1.4.4.min.js这个插件
第二步:
新建一个webProject,怎么建不讲了,太基础;我的工程名叫demoTest,
在WebRoot文件夹下新建一个test文件夹,
在test文件夹下建立四个文件夹,分别叫js,css,images,pages,
在pages文件夹下新建一个tt.html,和tt.js(作为你自己的写逻辑的js引用进来)
将解压出来的jquery-1.4.4.min.js,jquery.ztree.core.js,jquery.ztree.exedit.js放入js文件夹(注意.min.js是压缩版的,自己脑补)
将解压出来的css里的东西丢进css文件夹
OK,现在tt.html中引用这些个文件
<link rel="stylesheet" href="../css/demo.css" type="text/css"></link>
<link rel="stylesheet" href="../css/zTreeStyle/zTreeStyle.css" type="text/css"></link>
<script type="text/javascript" src="../js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="../js/jquery.ztree.core.js"></script>
<script type="text/javascript" src="../js/jquery.ztree.exedit.js"></script>
注意了:(1)插件的名字的jquery不要写成了jQuery(兔血的教训,检查到死都查不出来)
(2)jquery-1.4.4.min.js要放在ztree之前引用,不信我?自己测试下
第三步:
在tt.html中建立你的tree模型,也就是给一个初始的标记,这里zTree有一个固定的格式
<ul id="treeDemo" class="ztree"></ul>
第四步:在tt.js中初始化这棵树,初始化就一句
$(document).ready(function () {
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
};
说明:
1、treeDemo就是模型树的id,setting是一个对象,zNodes是一个数组,里面装的是一个个的对象,并且对象都是json格式的
2、对象setting 和数组zNodes 要在初始化之前定义
第五步:
下面这步完成你将看到这棵树!!!我们要在这个对象(数组)里做什么呢?且听细说
现在的这个树,什么都没有,nothing,光秃秃的,没有分枝,没有叶子,所以我们要通过这两个对像给他加上一些想展现
的东西,在coding里面你应该知道父亲,儿子的概念,zNodes这个数组就是干这些事的,它里面装的都是对象,这些对象
描述的就是树的节点 ,下面我们搞个静态的树试试看,拿我举例子~~成这样的一棵树
首先获得模型树标签:var t =$("#treeDemo");
定义setting,暂定义为空的,var setting = {};
zNodes定义如下:
var zNodes = [
{
name:"彪哥朋友",
open:false,
isParent:true
},
{
name:"彪哥同学",
open:true,
isParent:true
},
{
name:"彪哥父母",
open:true,
id:1,
url:"adfdfad",
children:[
{
name:"彪哥"
},
{
name:"姐姐",
children:[{
name:"外甥"
}]
}
]
}
];
最后完成初始化:
$(document).ready(function () {
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
};
现在这个tt.js完成
第六步:
引入tt.js到tt.html中,body标签内容如下
<ul id="treeDemo" class="ztree"></ul>
<script type="text/javascript" src="../js/tt.js"></script>
你可以尝试在head中导入tt.js,结果会告诉你,tt.js在body的文档尚未加载完就执行了,于是你看不到这棵树
接着我们来解释下那几个属性:
name:节点名称
open:节点默认是否展开,我特意将"彪哥朋友"设为false不展开,"彪哥同学"设为true展开(减号)
isParent:是否为文件夹
id:自定义的编号,可有可无
url:自定义的,可有可无
children:自己理解
下面我将这棵树的加号全部点开:
OK,这个简单的功能废了我老鼻子劲,因为一些根本不算问题的问题引起的,
比如说编码时误删了html的默认声明<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
比如说jquery要放在ztree之前引用这样的坑货
比如说即使这个jquery写成了jQuery,按着ctrl你依然可以点进去这个引用的插件,但是调用却不能调用
不过碰一鼻子灰,要比别人给你讲或者自己看别人写的博客印象深多了,弯路走多了后面的弯路才会越来越少
OK,下一篇讲这个setting
第二篇:怕碰到是因为没掌握,来吧,zTree!的更多相关文章
- 前端第二篇---前端基础之CSS
前端第二篇---前端基础之CSS 目录 一.css介绍 二.css语法 三.css的几种引入方式 四.css选择器 五.css属性相关 六.盒子模型 拓展 一.css介绍 CSS(Cascading ...
- PHP 性能分析第二篇: Xhgui In-Depth
[前言]这是国外知名博主 Davey Shafik 撰写的 PHP 应用性能分析系列的第二篇,第一篇介绍 Xhprof/Xhgui,第三篇则关注于性能调优实践. 在第一篇中,我们初步介绍了 xhpro ...
- 迷茫<第二篇:回到老家湖南长沙>
2014年8月初,我买了回老家的火车票,当时没有买到坐票,卧铺贵了买不起,所以我就选择了站票,准备站回老家.我现在还记得我当时买的是T1列火车,北京西站到长沙火车站,全程16个小时.当时我就在火车上站 ...
- 第二篇 界面开发 (Android学习笔记)
第二篇 界面开发 第5章 探索界面UI元素 ●The Android View Class ●△Widget设计步骤 需要修改三个XML,以及一个class: 1)第一个xml是布局XML文件 ...
- Egret入门学习日记 --- 第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容)
第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容) 既然选好了Egret,那我就要想想怎么学了. 开始第一步,先加个Q群先,这不,拿到了一本<E ...
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
原文地址: http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...
- 前端工程师技能之photoshop巧用系列第二篇——测量篇
× 目录 [1]测量信息 [2]实战 [3]注意事项 前面的话 前端工程师使用photoshop进行的大量工作实际上是测量.本文是photoshop巧用系列第二篇——测量篇 测量信息 在网页制作中需要 ...
- 深入理解javascript作用域系列第二篇——词法作用域和动态作用域
× 目录 [1]词法 [2]动态 前面的话 大多数时候,我们对作用域产生混乱的主要原因是分不清楚应该按照函数位置的嵌套顺序,还是按照函数的调用顺序进行变量查找.再加上this机制的干扰,使得变量查找极 ...
随机推荐
- 51. TreeSet
集合分类:-------------------| Collection 单列集合的根接口 ---------------| List 如果实现了List接口的集合类,具备的特点是:有序,可重复- ...
- selenium 显示等待、隐式等待、强制等待
如今大部分web程序使用Ajax技术,当浏览器加载页面时,页面元素可能不是同时加载完成,如果因为加载某个元素超时导致ElementNotVisibleException的情况出现,自动化脚本的稳定性就 ...
- PHP headers_sent() 函数
定义和用法 headers_sent() 函数检查 HTTP 报头是否发送/已发送到何处. 如果报头已发送,该函数返回 TRUE,否则返回 FALSE. 语法 headers_sent(file,li ...
- spark在不同环境下的搭建|安装|local|standalone|yarn|HA|
spark的集群环境安装搭建 1.spark local模式运行环境搭建 常用于本地开发测试,本地还分为local单线程和local-cluster多线程; 该模式被称为Local[N]模式,是用单机 ...
- VS开发工具的常用插件【转载】
文章转载自https://www.cnblogs.com/huntergu/p/8337266.html
- Python对象继承set类型
Python对象继承set类型 class Feature(set): def __init__(self): set.__init__(self) # 这里演示将Feature类的加号重载成set. ...
- mysql 第一次启动及常用命令
启动 mysql -u root -p 进入后 # 显示有几个数据库 mysql> show databases; +--------------------+ | Database | +-- ...
- CocoaPods更新2018年11月06日16:06:48
https://gems.ruby-china.org点进去就知道了…… CocoaPods命令 更新 sudo gem install -n /usr/local/bin cocoapods --p ...
- GIT学习记录3(分支管理)
学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...
- Neo4j中实现自定义中文全文索引
数据库检索效率时,一般首要优化途径是从索引入手,然后根据需求再考虑更复杂的负载均衡.读写分离和分布式水平/垂直分库/表等手段:索引通过信息冗余来提高检索效率,其以空间换时间并会降低数据写入的效率:因此 ...