第二篇:怕碰到是因为没掌握,来吧,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机制的干扰,使得变量查找极 ...
随机推荐
- mysql-5.5.17-win64 安装方法
双击mysql-5.5.17-win64.msi,即开始安装,出现如下界面 2 点击next,出现如下界面,默认为Typical,改选为Custom,单击Next 3 选择MySQL Server后, ...
- Aira搭建
Aira下载地址 https://github.com/aria2/aria2/releases AriaNg下载地址 https://github.com/mayswind/AriaNg/relea ...
- windows10 自动配置切换IP
办公室与家里的ip网段不一样.每次都要来回修改本地无线WLAN IP段.写了个脚本bat,自动配置WLAN IP,方便切换. 建立 auto-set-ip.bat,保存格式需为ANSI,否则中文会乱码 ...
- leetcood学习笔记-203-移除链表元素
题目描述: 方法:#在改pre链表时 head中的值也改变 class Solution(object): def removeElements(self, head, val): "&qu ...
- Download Kali Linux
https://www.kali.org/downloads/
- 移动Windows开始按钮到任务栏中的任何位置
uses CommCtrl; procedure TForm1.Button1Click(Sender: TObject); var vHandle: THandle; vCount: Integer ...
- delphi DrawText 的用法
DrawText(hDC: HDC; {设备句柄}lpString: PChar; {文本}nCount: Integer; {要绘制的字符个数; -1 表示全部}var lpRect: TRect; ...
- ETL详解
ETL是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决策提供分析依据. ETL是BI项目重要的一个环节. 通常情况下,在 ...
- NX二次开发-UFUN旋转视图UF_VIEW_rotate_view
NX11+VS2013 #include <uf.h> #include <uf_view.h> #include <uf_obj.h> #include < ...
- Java设计模式简单总结
1.单例模式:在应用程序整个生命周期中,单例类的实例只有一个,并且会自动实例化.单例类的构造方法必须为私有,并且提供一个全局访问点 public class Test { private Test() ...