ztree 实现树的搜索功能

var userZTree;
var userSetting={
		check: {
			enable: true,
			chkStyle: "radio",
			chkboxType : {"Y" : "" , "N" : ""},
			radioType: "all"
		},
		data: {
			simpleData: {
				enable: true,
				idKey : "id",
				pIdKey : "pid"
			}
		},
		callback:{
			onClick : clickCheck
		},
		view :{
			showIcon: false,
			fontCss: getFontCss
		}
};

这里要加一个属性:view:{fontCss:getFontCss}

这里的getFontCss为自己写的一个方法:

function getFontCss(treeId, treeNode) {
	return (!!treeNode.highlight) ? {color:"#A60000", "font-weight":"bold"} : {color:"#333", "font-weight":"normal"};
}
这样就可以实现变色功能了;

接下来 要在自己写的显示树上方加一个搜索输入框:

这里可以看到调用了changeColor方法:

//使用搜索数据 加高亮显示功能,需要2步
//1.在tree的setting 的view 设置里面加上 fontCss: getFontCss 设置
//2.在ztree容器上方,添加一个文本框,并添加onkeyup事件,该事件调用固定方法  changeColor(id,key,value)
//	id指ztree容器的id,一般为ul,key是指按ztree节点的数据的哪个属性为条件来过滤,value是指过滤条件,该过滤为模糊过滤
function changeColor(id,key,value){
	treeId = id;
	updateNodes(false);
	if(value != ""){
		var treeObj = $.fn.zTree.getZTreeObj(treeId);
		nodeList = treeObj.getNodesByParamFuzzy(key, value);
		if(nodeList && nodeList.length>0){
			updateNodes(true);
		}
	}
}
function updateNodes(highlight) {
	var treeObj = $.fn.zTree.getZTreeObj(treeId);
	for( var i=0; i
treeObj.getNodesByParamFuzzy(key, value);
是检索的ztree函数;
这样就ok了 ,可以实现搜索功能了。

你可能感兴趣的:(jquery)