1、问题背景
(1)生成zTree
(2)点击节点选中并给输入框赋值
(3)输入某个字符,树节点含有该字符被选中,颜色发生变化
2、实现源码
<!DOCTYPE html>
<html>
<head>
<title>zTree具有搜索功能</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../css/demo.css" type="text/css">
<link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="../../../js/jquery.ztree.core.js"></script>
<script type="text/javascript">
var setting = {
view: {
showIcon:false,
showTitle: false,
showLine: true,
fontCss: setFontCss
},
callback: {
onClick: zTreeOnClick
}
};
var zNodes =[
{id:"0",name:"树", open:true,
children: [
{id:"01",name:"灌木",open:true,
children: [
{id:"010",name:"银杏"},
{id:"011",name:"桑树"},
{id:"012",name:"红树"},
{id:"013",name:"榕树"}
]},
{id:"02",name:"乔木",open:true,
children: [
{id:"020",name:"杨树"},
{id:"021",name:"槐树"},
{id:"022",name:"杉木"},
{id:"023",name:"松树"}
]}
]}
];
$(document).ready(function(){
$.fn.zTree.init($("#tree"), setting, zNodes);
$("#dataBtn").keyup(function(){
var dt = $(this).val();
setColor('tree','name',dt);
});
});
function setColor(id,key,value){
treeId = id;
if(value != "")
{
var treeObj = $.fn.zTree.getZTreeObj(treeId);
nodeList = treeObj.getNodesByParamFuzzy(key, value);
if(nodeList && nodeList.length>0)
{
updateNodes(true,nodeList,treeId);
}
}
}
function updateNodes(highlight,nodeList,treeId) {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
for( var i=0; i<nodeList.length;i++)
{
nodeList[i].highlight = highlight;
treeObj.updateNode(nodeList[i]);
}
}
function setFontCss(treeId, treeNode)
{
return (!!treeNode.highlight) ? {color:"#0000FF", "font-weight":"bold","font-size":"14px"} : {color:"#333", "font-weight":"normal"};
};
function zTreeOnClick(event, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("tree")
var views = zTree.setting.view;
$("#dataBtn").val(treeNode.name);
views["fontCss"] = reSetFontCss;
};
function reSetFontCss(treeId, treeNode)
{
return (!treeNode.click)?{color:"#000000", "font-weight":"normal"}:{};
}
</script>
</head>
<body style="padding: 20px;">
<div>
<input type="text" id="dataBtn" style="width: 227px;"/>
</div>
<div class="content_wrap">
<div class="zTreeDemoBackground left">
<ul id="tree" class="ztree"></ul>
</div>
</div>
</body>
</html>
3、实现结果
(1)初始化时
(2)点击节点
(3)输入某个字符
4、问题分析
(1)缺陷
输入框输入某个字符,节点颜色发生变化,但是无法重置(恢复原来的颜色)
5、修复bug
<!DOCTYPE html>
<html>
<head>
<title>zTree具有搜索功能</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../css/demo.css" type="text/css">
<link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="../../../js/jquery.ztree.core.js"></script>
<script type="text/javascript">
var setting = {
view: {
showIcon:false,
showTitle: false,
showLine: true,
fontCss: setFontCss
},
callback: {
onClick: zTreeOnClick
}
};
var zNodes =[
{id:"0",name:"树", open:true,
children: [
{id:"01",name:"灌木",open:true,
children: [
{id:"010",name:"银杏"},
{id:"011",name:"桑树"},
{id:"012",name:"红树"},
{id:"013",name:"榕树"}
]},
{id:"02",name:"乔木",open:true,
children: [
{id:"020",name:"杨树"},
{id:"021",name:"槐树"},
{id:"022",name:"杉木"},
{id:"023",name:"松树"}
]}
]}
];
$(document).ready(function(){
$.fn.zTree.init($("#tree"), setting, zNodes);
$("#dataBtn").keyup(function(){
var zTree = $.fn.zTree.getZTreeObj("tree");
var views = zTree.setting.view;
views["fontCss"] = setFontCss;
var dt = $(this).val();
setColor('tree','name',dt);
});
});
function setColor(id,key,value){
treeId = id;
if(value != "")
{
var treeObj = $.fn.zTree.getZTreeObj(treeId);
nodeList = treeObj.getNodesByParamFuzzy(key, value);
if(nodeList && nodeList.length>0)
{
updateNodes(true,nodeList,treeId);
}
}
else
{
var treeObj = $.fn.zTree.getZTreeObj(treeId);
var views = treeObj.setting.view;
views["fontCss"] = reSetFontCss;
treeObj.refresh();
}
}
function updateNodes(highlight,nodeList,treeId) {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
for( var i=0; i<nodeList.length;i++)
{
nodeList[i].highlight = highlight;
treeObj.updateNode(nodeList[i]);
}
}
function setFontCss(treeId, treeNode)
{
return (!!treeNode.highlight) ? {color:"#0000FF", "font-weight":"bold","font-size":"14px"} : {color:"#000", "font-weight":"normal"};
};
function zTreeOnClick(event, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("tree");
var views = zTree.setting.view;
$("#dataBtn").val(treeNode.name);
views["fontCss"] = reSetFontCss;
zTree.refresh();
};
function reSetFontCss(treeId, treeNode)
{
return (!treeNode.highlight)?{color:"#000000", "font-weight":"normal"}:{};
}
</script>
</head>
<body style="padding: 20px;">
<div>
<input type="text" id="dataBtn" style="width: 227px;"/>
</div>
<div class="content_wrap">
<div class="zTreeDemoBackground left">
<ul id="tree" class="ztree"></ul>
</div>
</div>
</body>
</html>
分享到:
相关推荐
总结起来,ZTree是一个强大的树形控件,通过其丰富的功能和与数据库的交互,可以在Web应用中实现复杂的数据展示和操作。通过学习和实践提供的ZtreeDemo,开发者可以更好地理解和运用ZTree,提升项目开发的效率和用户...
本篇将详细探讨"ZTree自定义搜索功能 -- 可递归无限层"这一主题,帮助开发者更好地理解和实现ZTree中的节点搜索功能。 1. **ZTree概述**: ZTree是一个基于jQuery的插件,它提供了丰富的API接口和灵活的配置选项,...
总结起来,jQuery ZTree的模糊查询功能是通过`filter`方法和可选的`beforeFilter`回调实现的。通过自定义过滤规则,我们可以保持树的原有层次结构,并根据需要提供额外的用户体验优化。在实际项目中,根据具体需求...
"zTree实现多选下拉框"这个主题聚焦于如何利用zTree这款JavaScript库来创建一个支持多选功能的下拉框控件。zTree是一款强大的树形插件,广泛应用于网页中展示层次结构数据,如组织结构、文件目录等。本文将详细介绍...
`searchNode`函数是核心的搜索逻辑,它会根据用户的选择(全词匹配或模糊匹配)以及当前输入的关键词,调用相应的ZTree搜索方法,并更新显示的节点。搜索结果会被存储在`nodeList`数组中,以便进一步处理,如高亮...
在Django项目中使用ZTree,我们需要将后端返回的数据转换为ZTree可识别的格式。 4. 数据转换: 为了将数据库中的数据表转换为ZTree格式,我们需要编写Django视图函数,查询数据库并格式化数据。数据通常以JSON形式...
综上所述,通过结合 zTree 的初始化、事件绑定、自定义样式和搜索功能,我们可以实现点击 input 框时出现下拉菜单的功能。提供的压缩包文件 "zTree_v3" 包含了 zTree 的最新版本,你可以直接使用或参考其中的示例...
本项目利用ZTree结合SSM(Spring、SpringMVC、MyBatis)框架,在TOMCAT服务器上实现了公司组织结构的树状展示功能。 首先,SSM框架是Java Web开发中广泛使用的三大组件集合。Spring作为基础框架,提供了依赖注入和...
在IT领域,特别是前端开发中,ZTree是一款广泛使用的JavaScript组件,它主要用于构建可操作的树形结构。本文将深入探讨如何使用ZTree实现左右两棵树之间的节点移动,包括节点的添加、删除以及同步更新的操作。 首先...
在这个场景下,我们讨论的是如何利用zTree这个JavaScript库来实现树形菜单。zTree是一款功能丰富的jQuery插件,专门用于构建交互式的树形结构。 首先,我们需要理解zTree的基本概念。zTree的核心是JSON数据格式,它...
本篇将详细介绍如何利用Ztree和treeTable来实现这样的功能。 Ztree是一款基于JavaScript的树形插件,它提供了丰富的功能和良好的性能,广泛应用于网页端的数据展示。Ztree_v3是其第三个主要版本,具有更多的特性和...
Ztree是一款非常流行的JavaScript插件,用于构建可交互的树形控件,尤其适用于网页上的导航菜单和数据展示。在这个场景下,"Ztree实现主要代码"的标题暗示我们将探讨如何利用zTree来实现在页面左侧展示树形结构,当...
在搜索功能的实现方面,zTree允许用户通过在树形控件上方设置一个搜索框,在用户输入搜索关键词后,根据输入的内容对树节点进行模糊匹配,并将匹配到的节点高亮显示。这个过程主要通过自定义的方法和zTree提供的API...
在"ztree实现AJAX树状结构-JAVA实现"的项目中,我们将关注如何利用ZTree的AJAX功能动态加载树节点,同时与Java后端进行数据交互。 首先,我们需要在HTML页面中引入ZTree的CSS和JS文件,并创建一个用于显示树的`<ul>...
ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网...
在这个场景中,我们要讨论的是如何利用zTree实现一个功能,即当用户点击input输入框时,能够弹出一个下拉菜单供用户选择。这个功能在许多Web应用中都很常见,例如搜索建议、选择列表等。 首先,我们需要理解zTree的...
本篇文章将深入探讨如何利用ZTree插件实现树形控件,并介绍其核心概念和关键功能。 1. **ZTree基本概念** - **节点(Node)**:ZTree中的每个数据单元都称为节点,可以包含父节点和子节点,形成树状结构。 - **树...
4. **搜索功能**:内置搜索框,用户可快速查找目标节点,提高用户体验。 5. **拖放功能**:允许用户通过拖放节点来调整树形结构,便于管理复杂的层级关系。 6. **权限控制**:可以设置节点的可见性、可操作性,...
在实际应用中,ZTree还提供了许多其他功能,如节点的拖拽、搜索、编辑等。开发者可以根据需求选择合适的配置和扩展功能。同时,为了提升用户体验,可以考虑优化数据加载策略,比如分页加载、懒加载等。 总结来说,...