最近工作中需要利用ztree实现树搜索功能,在网上看了一下别人的轮子觉得都有点不适合需求,所以根据自己的实际情况进行了改进,经过几次优化,觉得效果还能用:
/**
* 搜索功能3.0
* @type {Element}
*/
var node = document.querySelector('#client_name');
var cpLock = false;
var bower = myBrowser() //判断浏览器类型,在此省略
//实现延迟搜索,如果上次的输入还没有被执行,那么就取消上一次的执行
var timeoutId = null;
function searchNodeLazy(keyword) {
if (timeoutId) {
clearTimeout(timeoutId);
}
timeoutId = setTimeout(function(){
search_keyword(keyword);
}, 500);
}
//实现模糊搜索
function search_keyword(keyword) {
if(keyword === ""){
return;
}
var zTree = $.fn.zTree.getZTreeObj("ztree");
var allNodes = zTree.transformToArray(zTree.getNodes());
zTree.hideNodes(allNodes);
//当开始搜索时,先将所有节点隐藏
var nodeList = zTree.getNodesByParamFuzzy('r