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 相关文章推荐
csdn 博客的css样式 v3
Feb 24 Javascript
不同编码的页面表单数据乱码问题解决方法
Feb 15 Javascript
基于jQuery实现多层次的手风琴效果附源码
Sep 21 Javascript
理解AngularJs指令
Dec 10 Javascript
jQuery中的each()详细介绍(推荐)
May 25 Javascript
理解javascript中的闭包
Jan 11 Javascript
Vue非父子组件通信详解
Jun 12 Javascript
简单谈谈js的数据类型
Sep 25 Javascript
Vue2.2.0+新特性整理及注意事项
Aug 22 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
May 16 Javascript
JavaScript交换变量常用4种方法解析
Sep 02 Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 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
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
推荐dojo学习笔记
2007/03/24 Javascript
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
快速了解Python相对导入
2018/01/12 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
django ORM之values和annotate使用详解
2020/05/19 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
年终总结会议主持词
2014/03/17 职场文书
闭幕式主持词
2014/04/02 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
四查四看整改措施
2014/09/19 职场文书
2016大学军训心得体会
2016/01/11 职场文书
redis限流的实际应用
2021/04/24 Redis
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS