jquery ztree异步搜索(搜叶子)实践


Posted in Javascript onFebruary 25, 2016

一、初始异步加载树

 初始化默认给出一个根结点,再结合异步加载的方式手动触发默认加载第一层,如图:

jquery ztree异步搜索(搜叶子)实践

代码如下:

var treeSetting = {
 async: {
 enable: true, <a href="http://my.oschina.net/wealpan/admin/"xxx/demo.do?method=listByTree" rel="nofollow">url:"xxx/demo.do?method=listByTree</a>",
 dataType:"json",
 autoParam:["id=pid"]
 },
 view: {
 dblClickExpand: true,
 selectedMulti: false,
 expandSpeed: ($.browser.msie && parseInt($.browser.version)<=6)?"":"fast"
 },
 data: {
 simpleData: {
  enable:true,
  idKey: "id",
  pIdKey: "pid",
  rootPId: "root"
 }
 },
 callback: {
 onNodeCreated: zTreeOnNodeCreated
 }
};
 
//默认根结点
var rootNode = {"id":0, "pid":"root", "name":"商品分类", "open":true, "isParent":true};
 
$(document).ready(function(){
 var zTreeObj = $.fn.zTree.init($("#tree"), treeSetting, rootNode);
 var node = zTreeObj.getNodeByParam("id", 0, null);
 zTreeObj.reAsyncChildNodes(node, "refresh");
});

二、异步搜索叶子结点

    在使用JQuery ZTREE时可能要用到异步的方式模糊搜索叶子结点,如图:

 jquery ztree异步搜索(搜叶子)实践

    而如果只使用ZTREE自带的展开方法zTreeObj.expandNode只是会展开改结点,无法触发异步加载;这时候就必须手动调用异步加载的方法进行处理,解决思路如下:   
    通过在otherParam数组中设值的方式将搜索参数带到后台(无参数时必须将otherParam设为空数组否则一直会将前一次的参数带到后台);在结点创建完成后的回调函数onNodeCreated中进行手动异步加载。

代码如下:

function searchM() {
 var param = $.trim($("input[name='param']").val());
 var treeObj = $.fn.zTree.getZTreeObj("tree");
 var node = treeObj.getNodeByParam("id", 0, null);
 if(param != ""){
 param = encodeURI(encodeURI(param));
 treeObj.setting.async.otherParam=["param", param];
 }else {
 //搜索参数为空时必须将参数数组设为空
 treeObj.setting.async.otherParam=[];
 }
 treeObj.reAsyncChildNodes(node, "refresh");
}
 
function zTreeOnNodeCreated(event, treeId, treeNode) {
 var param <span></span><span></span>= $.tr<span></span>im($("input[name='param']").val());
 var treeObj = $.fn.zTree.getZTreeObj("tree");
 //只有搜索参数不为空且该节点为父节点时才进行异步加载
 if(param != "" && treeNode.isParent){
 treeObj.reAsyncChildNodes(treeNode, "refresh");
 } 
};

更多关于ztree控件的内容,请参考专题《jQuery插件ztree使用汇总》 。

以上就是关于jquery ztree异步搜索的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
File, FileReader 和 Ajax 文件上传实例分析(php)
Apr 27 Javascript
吐槽一下我所了解的Node.js
Oct 08 Javascript
原生javascript获取元素样式
Dec 31 Javascript
javascript实现炫酷的拖动分页
May 11 Javascript
js+html5实现可在手机上玩的拼图游戏
Jul 17 Javascript
javascript单例模式的简单实现方法
Jul 25 Javascript
jQuery控制控件文本的长度的操作方法
Dec 05 Javascript
使用jQuery实现动态添加小广告
Jul 11 jQuery
webpack3之loader全解析
Oct 26 Javascript
JavaScript的setter与getter方法
Nov 29 Javascript
vue router-link 默认a标签去除下划线的实现
Nov 06 Javascript
JavaScript的Set数据结构详解
Feb 18 Javascript
JQuery ztree 异步加载实例讲解
Feb 25 #Javascript
Node.js编写组件的三种实现方式
Feb 25 #Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
Feb 25 #Javascript
你所未知的3种Node.js代码优化方式
Feb 25 #Javascript
jQuery使用contains过滤器实现精确匹配方法详解
Feb 25 #Javascript
原生javascript实现addClass,removeClass,hasClass函数
Feb 25 #Javascript
javascript随机抽取0-100之间不重复的10个数
Feb 25 #Javascript
You might like
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
javascript import css实例代码
2008/07/18 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
Atom的python插件和常用插件说明
2018/07/08 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
一行python实现树形结构的方法
2019/08/09 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
python同时遍历两个list用法说明
2020/05/02 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
行政办公员自我评价分享
2013/12/14 职场文书
班训口号大全
2014/06/18 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
感恩教师节主题班会
2015/08/12 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
Python字典和列表性能之间的比较
2021/06/07 Python
Python可视化神器pyecharts绘制水球图
2022/07/07 Python