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 相关文章推荐
Track Image Loading效果代码分析
Aug 13 Javascript
JS 自动安装exe程序
Nov 30 Javascript
理解Javascript_12_执行模型浅析
Oct 18 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
Nov 25 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
Nov 07 Javascript
详谈JS中实现种子随机数及作用
Jul 19 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
Vue.js之slot深度复制详解
Mar 10 Javascript
VueJs监听window.resize方法示例
Jan 17 Javascript
解决vue v-for 遍历循环时key值报错的问题
Sep 06 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
Dec 04 Vue.js
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中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
浅析Python中的多进程与多线程的使用
2015/04/07 Python
详解Python验证码识别
2016/01/25 Python
三个python爬虫项目实例代码
2019/12/28 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
详解python对象之间的交互
2020/09/29 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
简历中自我评价怎么写
2014/02/12 职场文书
保护动物倡议书
2014/04/15 职场文书
项目合作协议书范本
2014/04/16 职场文书
企业职业病防治方案
2014/05/29 职场文书
员工趣味活动方案
2014/08/27 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL