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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
基于jQuery的树控件实现代码(asp.net+json)
Jul 11 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
Aug 30 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
jquery实现input框获取焦点的简单实例
Jan 26 Javascript
JS模拟实现ECMAScript5新增的数组方法
Mar 20 Javascript
vue子组件使用自定义事件向父组件传递数据
May 27 Javascript
基于node.js express mvc轻量级框架实践
Sep 14 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
Oct 30 Javascript
通过GASP让vue实现动态效果实例代码详解
Nov 24 Javascript
微信小程序onShareTimeline()实现分享朋友圈
Jan 07 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&amp;mysql(五)
2006/10/09 PHP
定义php常量的详解
2013/06/09 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
js格式化时间小结
2014/11/03 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
Python使用django搭建web开发环境
2017/06/09 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
解决python 上传图片限制格式问题
2019/10/30 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
分布式数据库需要考虑哪些问题
2013/12/08 面试题
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
数控专业推荐信范文
2013/12/02 职场文书
校本教研工作制度
2014/01/22 职场文书
人事科岗位职责范本
2014/03/02 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle
python 实现图片特效处理
2022/04/03 Python