给zTree添加onSelect callback
由于jquery ui没有集成tree控件,所以在网上找到了zTree v3。zTree无疑是功能非常强大的一款jquery的插件,而且是国人作品,zTree的文档写得也非常好,效果很炫。但是我在使用过程中,发现ztree目前的版本,缺乏一个onSelect的callback。系统的要求是这样的,Tree的数据load完成,render之后,自动选择一个节点,并根据该节点从server装载新的数据并显示。于是决定自己添加一下此功能。
经分析发现zTree的实例是在调用jQuery.fn.zTree.init的时候动态构建的,所以不存在一个静态的类来扩展,所以只有在构建zTree实例的时候截取实例变量并进行扩展,废话少说上代码:
function enZTree(){
if(!$.fn.zTree._ori_init){
$.fn.zTree._ori_init=$.fn.zTree.init;
$.fn.zTree.init=function(){
obj=$.fn.zTree._ori_init.apply(this,arguments);
return function(t){
t._ori_selectNode=t.selectNode;
t.selectNode=function(nd){
t._ori_selectNode.apply(this,arguments);
if (this.setting.callback.onSelect){
this.setting.callback.onSelect(null,this.setting.treeId,nd);
}
};
return t;
}(obj);
}
}
}
代码通过替换jQuery.fn.zTree.init函数实现对用户构建的zTree实例的动态扩展。onSelect的配置参照api文档中其他callback的设置即可。
如果需要自动扩展,则需要注册一个启动方法:
jQuery(document).ready(function(){
enZTree();
});
给zTree添加onSelect callback的更多相关文章
- ant design pro 实战 : 使用 ztree
应当指出,antd 是有 ztree 组件的,但是太简单,无法满足复杂的业务需求. 所以我还是决定使用zTree. 用 npm | cnpm 或者 yarn | tyarn 安装,这一步略. 在 js ...
- 带callback的future实现
jdk暂时不支持,所以只有自己实现带callback的future. 完成后callback的 final TaskPromise promise = new DefaultTaskPromise() ...
- 使用 vite 构建一个表情选择插件
初始化 Vite 基于原生 ES 模块提供了丰富的内建功能,开箱即用.同时,插件足够简单,它不需要任何运行时依赖,只需要安装 vite (用于开发与构建)和 sass (用于开发环境编译 .scss ...
- 前端之ajax
前端之ajax 本节内容 ajax介绍 原生js实现ajax jquery实现ajax json 跨域请求 1. ajax介绍 AJAX(Asynchronous Javascript And XML ...
- javascript的ajax
AJAX 一 AJAX预备知识:json进阶 1.1 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javas ...
- 【JavaScript】--重点解析之跨域请求
JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON是用字符串来表示Javascript对象,例如可以在django中发送一个JSON格式 ...
- JS、JQuery和ExtJs的跨域处理
1.什么是跨域?跨域,JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a. ...
- Jsonp跨域访问
很早之前看过好几篇跨域访问的文章,然后做项目的时候基本没有遇到跨域访问的问题.不过该来的还是会来,前些天终于让我遇到了.于是重温了一下原理这些,再进行实战.于是现在也敢通过实战后的一些理解来和大家分享 ...
- 深入浅出JSONP--解决ajax跨域问题
取不到数据! 上周客户新买了服务器,原本在旧的服务器上放着客户的Web主页信息和一个后台程序(asp.net),在客户的主页中有一个动态显示最新消息的处理,这个处理就是通过ajax异步从那个后台程序中 ...
随机推荐
- 7. 集成学习(Ensemble Learning)Stacking
1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random ...
- RabbitMQ文档翻译——Hello World!(下)
Receiving That's it for our sender. Our receiver is pushed messages from RabbitMQ, so unlike the sen ...
- 腾讯云安装Hadoop遇到的问题
1.能正常访问bincoding.cn:50030,不能连接到9000端口 Call to bincoding.cn/123.206.212.115:9000 failed on connection ...
- Jquery 延迟加载框架
http://www.appelsiini.net/projects/lazyload
- wps不记录打开打开的文件
“工具”中的“选项”后,进入选项界面,在“常规与保存”选项卡中把“最近文档管理列出文件”前面的勾取消或将后面的数字选为0.
- Linq to Sql 动态条件另类实现方法
其实我也不知道是不是另类的,反正我找了好久园子里和其他资源. 无外乎两类 1,构造动态表达式的,这个真心繁琐,我是懒人,不想弄表达式. 2,拼SQL语句,直接执行,这个和ado.net就没有啥区别了. ...
- 通过ambari安装hadoop集群(二)
开始安装,输入主机名字,然后选择私钥 注意java_home那里需要改为/usr/jdk64/jdk1.6.0_31,然后点击确认,它会出一个警告提示,别管他就行. 等待安装完毕之后,就会出现成功的提 ...
- Casual Note of OS
20170104 冯诺依曼计算机(遵循冯诺依曼结构设计的计算机:存储器.运算器.控制器.输入设备.输出设备)之前也有计算机,不过在那之前的计算机是专用的,不可编程,只能干特定的事情没法干其他事.与之前 ...
- Sword ACE编译
1.设置环境变量 #ACE_ROOT是指ACE解压目录 export ACE_ROOT=/home/person/2/ACE_wrappers export LD_LIBRARY_PATH=$ACE_ ...
- 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)
一.Qt环境设置 文件从window上传到Ubuntu后会显示乱码,原因是因为ubuntu环境设置默认是utf-8,Windows默认都是GBK.Windows环境下,Qt Creator,菜单-&g ...