无限树Jquery插件zTree的常用功能特性总结


Posted in Javascript onSeptember 11, 2014

其实Ztree官网已经有详细的API文档,一切以官网上的说明为准,我在此只是结合实践总结几条常用的ztree的功能特性.

(ztree的语法结构是基于key-value的形式配置)

1:支持异步加载数据

语法配置:

async: {
enable: true, 

url:'abc.ashx',

otherParam: { "request": "requestname" }

}

简要说明:

enable :设置 zTree 是否开启异步加载模式.

url:Ajax 获取数据的 URL 地址.

otherParam:Ajax 请求提交的静态参数键值对.相当于ajax中的data参数.

2:加载数据并绑定,一般都是定义数据结构实体即model,此数据结构要包含层级关系通常包括:ID,父ID,Name.

然后配置语法:

data: {
simpleData: {
enable: true
}
}

或者

data: {
key: {
children: "childrens",

checked: "IsChecked"
}
}

简要说明:

simpleData:即可采用数组作为数据源绑定.此时异步加载的数据可为平行结构.

children: 指定节点数据中保存子节点数据的属性名称,此时异步加载的数据为树的折叠结构;所以后端加载数据时要使用递归算法.

3:支持单选,复选功能

语法配置:

check: {
enable: true,
chkStyle: "checkbox",
radioType: "all"
chkboxType:{ "Y": "", "N": "" }
},

data: {
key: {

checked: "IsChecked"
}
}

简要说明:

enable:设置 zTree 的节点上是否显示 checkbox / radio

chkStyle:勾选框类型(checkbox 或 radio)

radioType:radio 的分组范围

chkboxType:勾选 checkbox 对于父子节点的关联关系

checked:为加载数据后复选框是否勾选.IsChecked为后端数据结构model中定义的字段.

4:支持添加子节点,编辑节点,删除节点事件

我这里介绍如何采用自定义添加,编辑,删除按钮的方式

语法配置:

view: {
addHoverDom: addHoverDom,
removeHoverDom: removeHoverDom
 }

其中addHoverDom 函数为:

function addHoverDom(treeId, treeNode) {
var sObj = $("#" + treeNode.tId + "_span");
if ($("#addBtn_" + treeNode.id).length > 0) return;
var str= "<a id='addBtn_" + treeNode.id + "' onclick='自定义函数1(" + treeNode.DepartmentID + ")'>添加子节点</a>";
str+= "<a id='addBtn1_" + treeNode.id + "' onclick='自定义函数2(" + treeNode.DepartmentID + ")'>编辑节点</a>";
str+= "<a id='addBtn2_" + treeNode.id + "' onclick='自定义函数3(" + treeNode.DepartmentID + ")'>删除节点</a>";
sObj.after(str);
};

其中removeHoverDom函数为:

function removeHoverDom(treeId, treeNode) {
$("#addBtn_" + treeNode.id).unbind().remove();
$("#addBtn1_" + treeNode.id).unbind().remove();
$("#addBtn2_" + treeNode.id).unbind().remove();
 };

简要说明:

addHoverDom:用于当鼠标移动到节点上时,显示用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮

removeHoverDom:用于当鼠标移出节点时,隐藏用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮

Javascript 相关文章推荐
Jquery操作Select 简单方便 一个js插件搞定
Nov 12 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
jquery 动态增加删除行的简单实例(推荐)
Oct 12 Javascript
jQuery动态移除和添加背景图片的方法详解
Mar 07 Javascript
JavaScript实现简单的星星评分效果
May 18 Javascript
JavaScript实现简单生成随机颜色的方法
Sep 21 Javascript
js字符串处理之绝妙的代码
Apr 05 Javascript
vue实现百度语音合成的实例讲解
Oct 14 Javascript
javascript 对象 与 prototype 原型用法实例分析
Nov 11 Javascript
js实现倒计时秒杀效果
Mar 25 Javascript
bootstrap-paginator服务器端分页使用方法详解
Feb 13 Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
js通过location.search来获取页面传来的参数
Sep 11 #Javascript
Javascript中设置默认参数值示例
Sep 11 #Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
Sep 11 #Javascript
Extjs grid panel自带滚动条失效的解决方法
Sep 11 #Javascript
用js传递value默认值的示例代码
Sep 11 #Javascript
js图片实时加载提供网页打开速度
Sep 11 #Javascript
jQuery 复合选择器应用的几个例子
Sep 11 #Javascript
You might like
php巧获服务器端信息
2006/12/06 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
php生成excel列序号代码实例
2013/12/24 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python 错误和异常小结
2013/10/09 Python
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
django 单表操作实例详解
2019/07/30 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
函授毕业生自我鉴定
2013/11/06 职场文书
教师业务学习制度
2014/01/25 职场文书
公益广告标语
2014/06/19 职场文书
公司外出活动方案
2014/08/14 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
仙境之桥观后感
2015/06/16 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
初二数学教学反思
2016/02/17 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS
MySQL分区路径子分区再分区
2022/04/13 MySQL