Heim >Web-Frontend >js-Tutorial >jquery ztree implementiert die Baumsuchfunktion_jquery
Das Beispiel in diesem Artikel teilt die von jquery ztree implementierte Baumsuchfunktion als Referenz. Der spezifische Inhalt ist wie folgt
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 } };
Fügen Sie hier ein Attribut hinzu: view: {fontCss: getFontCss}
Hier ist eine für mich selbst geschriebene Methode von getFontCss:
function getFontCss(treeId, treeNode) { return (!!treeNode.highlight) ? {color:"#A60000", "font-weight":"bold"} : {color:"#333", "font-weight":"normal"}; }
Auf diese Weise kann die Farbwechselfunktion realisiert werden
Als Nächstes müssen Sie über dem von Ihnen geschriebenen Anzeigebaum ein Sucheingabefeld hinzufügen:
<div id="userDiv" class="showParentDiv showDiv" style="z-index:105;display: none;"> <div class="grayBg"> <div class="toolbar"> <input type="button" value=" <s:text name='button.submit'/> " onclick="submitUser();"/> <input type="button" value=" <s:text name='button.cancel'/> " onclick="closeUserDiv();"/> <input type="button" value=" 新建 " onclick="toAddDiv();"/> </div> </div> <div style="text-align:left;margin:5px;height: 15px;">按名字过滤:<input type="text" id="dicKey" onkeyup="changeColor('userTree','name',this.value)"/></div> <ul id="userTree" class="ztree" style="height:350px; overflow-y:scroll;"></ul> </div>
Hier sehen Sie, dass die Methode changeColor aufgerufen wird:
//使用搜索数据 加高亮显示功能,需要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<nodeList.length; i++) { nodeList[i].highlight = highlight; treeObj.updateNode(nodeList[i]); } } treeObj.getNodesByParamFuzzy(key, value);
ist die abgerufene Ztree-Funktion;
Das ist in Ordnung und die Suchfunktion kann implementiert werden.