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 相关文章推荐
Exjs 入门篇
Apr 07 Javascript
JS实现点击按钮后框架内载入不同网页的方法
May 05 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
Sep 08 Javascript
JS生成和下载二维码的代码
Dec 07 Javascript
vue2.0移除或更改的一些东西(移除index key)
Aug 28 Javascript
vue 的keep-alive缓存功能的实现
Mar 22 Javascript
动态加载JavaScript文件的3种方式
May 05 Javascript
微信小程序wepy框架学习和使用心得详解
May 24 Javascript
JavaScript实现背景自动切换小案例
Sep 27 Javascript
taro小程序添加骨架屏的实现代码
Nov 15 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
Nov 12 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 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
星际原理概述
2020/03/04 星际争霸
咖啡的种类和口感
2021/03/03 新手入门
yii框架源码分析之创建controller代码
2011/06/28 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
Fiddler如何抓取手机APP数据包
2016/01/22 Python
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
Ibatis如何调用存储过程
2015/05/15 面试题
J2EE包括哪些技术
2016/11/25 面试题
财务助理岗位职责
2013/11/10 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
优秀学生评语大全
2014/04/25 职场文书
供电工程专业求职信
2014/08/09 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
《角的度量》教学反思
2016/02/18 职场文书