jquery.ztree 樣式 - CSDN

2020-12-24 CSDN技術社區

1、添加樣式、js

<link rel="stylesheet" href="${ctx}/hollybeacon/resources/plugins/zTree_v3/css/demo.css" type="text/css"><link rel="stylesheet" href="${ctx}/hollybeacon/resources/plugins/zTree_v3/css/zTreeStyle/zTreeStyle.css" type="text/css"><script type="text/javascript" src="${ctx}/hollybeacon/resources/plugins/zTree_v3/js/jquery.ztree.core-3.5.js"></script><script type="text/javascript" src="${ctx}/hollybeacon/resources/plugins/zTree_v3/js/jquery.ztree.excheck-3.5.js"></script><script type="text/javascript" src="${ctx}/hollybeacon/resources/plugins/zTree_v3/js/jquery.ztree.exedit-3.5.js"></script>如果想要hideNodes、showNodes等方法,必須加入<script type="text/javascript" src="${ctx}/hollybeacon/resources/plugins/zTree_v3/js/jquery.ztree.exhide-3.5.js"></script>如果不需要那些hideNodes、showNodes等方法以只添加一個js,代替上面的三個js<script type="text/javascript" src="${ctx}/hollybeacon/resources/plugins/zTree_v3/js/jquery.ztree.all-3.5.min.js"></script>

2、html設置一個div、ul,注意ul的class是固定的ztree

<div class="treecontentpane"> <ul id="busTree" class="ztree"> </ul></div>

3、寫js操作數據

1、setting配置詳情var setting = { view: { selectedMulti: false, dblClickExpand: false, fontCss: setFontCss_ztree }, edit: { enable: true, showRemoveBtn: true, showRenameBtn: true, isSimpleData : true, treeNodeKey : "id", treeNodeParentKey : "parentId", showLine : true, removeTitle: "刪除節點", renameTitle: "編輯節點", drag: { isCopy: true, isMove: true, prev: false, next: false, inner: true } }, async: { enable: true, type:"get", url:holly.getPath() + "/rest/treeCode/showZtreeSyncRest", contentType:"application/json", autoParam: ["id"], dataFilter:filter, otherParam: { "id":"1", "code_name":"固網測試"} }, data:{ key:{ name:"codeName" }, simpleData:{ enable:true, idKey:"id", pIdKey:"parentId", rootPId:null } }, callback: { beforeDrag: beforeDrag, beforeDrop: beforeDrop, onDrop: zTreeOnDrop, beforeRemove: zTreeBeforeRemove, onRemove: zTreeOnRemove, beforeEditName: zTreeBeforeEditName, onClick: zTreeOnClick, onRightClick: zTreeOnRightClick, onAsyncSuccess: zTreeOnAsyncSuccess } };2、zTree回調方法 function filter(treeId, parentNode, responseData) { var contents = (responseData.content)?responseData.content:responseData; if(contents.length >0){ for(var i= 0 ; i <contents.length;i++){ var isParent = contents[i].isParent; if(isParent == false){ isParent = true; }else{ isParent = false; } contents[i].isParent = isParent; } } return contents; }; function zTreeOnAsyncSuccess(event, treeId, msg) { try { var treeObj = $.fn.zTree.getZTreeObj("busTree"); var nodes = treeObj .getNodes(); for(var i = 0;i<nodes.length;i++){ treeObj .expandNode(nodes[i], true); } } catch (err) { holly.showError("數據異常", err); } } 注意:如果你是異步只加載了根節點和一級節點,那麼增刪改的時候,得到的異步結果,會獲取不到該節點的子節點,只有zTreeOnAsyncSuccess方法執行完後,才能夠取到子節點的信息。所以在Eclipse中run執行和debugger執行得到不同的結果。因為run運行數據還沒接受到。 zTree = $.fn.zTree.init($("#busTree"), setting); var treeObj = $.fn.zTree.getZTreeObj("busTree"); treeObj.reAsyncChildNodes(null, "refresh"); treeObj.reAsyncChildNodes(zTree.getSelectedNodes().childNodes,"refresh"); treeObj.getSelectedNodes()[0].codeName = $("#treeRootCodeName").val(); treeObj.getSelectedNodes()[0].codeValue = $("#treeRootCodeValue").val(); treeObj.SelectedNodes()[0].remark = $("#treeRootRemark").val(); treeObj.updateNode(zTree.getSelectedNodes()[0]); 1、根據查詢的結果,顯示對應樹形結構。注意這裡只能是對應查找幾級節點的信息,還有待優化。 function searchByValue(){ var zTree = $.fn.zTree.getZTreeObj("treeDemo"); var nodes = zTree.transformToArray(zTree.getNodes()[0].children); var key=$("#codeName").val(); if(/^\s*$/.test(key)){ zTree.showNodes(nodes); return; } zTree.hideNodes(nodes); var nodeList=zTree.getNodesByParamFuzzy("CODE_NAME", key); var filterNodes=[]; for(var i=0;i<nodeList.length;i++){ if(nodeList[i].level==2) { filterNodes.push(nodeList[i]); } } zTree.showNodes(filterNodes); for(var i=0;i<filterNodes.length;i++){ var parentNode = filterNodes[i].getParentNode(); zTree.expandNode(parentNode, true, false, false); zTree.showNode(parentNode); } } 2、搜索變色功能,但是會顯示全部信息,查詢到的結果會顯示不同的顏色 function expand_ztree(treeId){ var treeObj = $.fn.zTree.getZTreeObj(treeId); treeObj.expandAll(true); } function close_ztree(treeId){ var treeObj = $.fn.zTree.getZTreeObj(treeId); var nodes = treeObj.transformToArray(treeObj.getNodes()); var nodeLength = nodes.length; for (var i = 0; i < nodeLength; i++) { if (nodes[i].PARENT_ID == null) { treeObj.expandNode(nodes[i], true, true, false); } else { treeObj.expandNode(nodes[i], false, true, false); } } } function searchByValue(){ searchByFlag_ztree("treeDemo","codeName"); } function searchByFlag_ztree(treeId, searchConditionId){ var searchCondition = $('#' + searchConditionId).val(); var highlightNodes = new Array(); if (searchCondition != "") { var treeObj = $.fn.zTree.getZTreeObj(treeId); highlightNodes = treeObj.getNodesByParamFuzzy("CODE_NAME", searchCondition, null); } highlightAndExpand_ztree(treeId, highlightNodes); } function highlightAndExpand_ztree(treeId, highlightNodes){ var treeObj = $.fn.zTree.getZTreeObj(treeId); var treeNodes = treeObj.transformToArray(treeObj.getNodes()); var nodes = treeObj.transformToArray(treeObj.getNodes()[0].children); for (var i = 0; i < treeNodes.length; i++) { treeNodes[i].highlight = false; treeObj.updateNode(treeNodes[i]); } close_ztree(treeId); if (highlightNodes != null) { for (var i = 0; i < highlightNodes.length; i++) { highlightNodes[i].highlight = true; treeObj.updateNode(highlightNodes[i]); var parentNode = highlightNodes[i].getParentNode(); var parentNodes = getParentNodes_ztree(treeId, parentNode); treeObj.expandNode(parentNodes, true, false, true); treeObj.expandNode(parentNode, true, false, true); setFontCss_ztree("",highlightNodes[i]); } } } function getParentNodes_ztree(treeId, node){ if (node != null) { var treeObj = $.fn.zTree.getZTreeObj(treeId); var parentNode = node.getParentNode(); return getParentNodes_ztree(treeId, parentNode); } else { return node; } } function setFontCss_ztree(treeId, treeNode) { if (treeNode.PARENT_ID == null) { return {color:"#333", "font-weight":"bold"}; } else if (treeNode.isParent == false){ return (!!treeNode.highlight) ? {color:"#ff0000", "font-weight":"bold"} : {color:"#660099", "font-weight":"normal"}; } else { return (!!treeNode.highlight) ? {color:"#ff0000", "font-weight":"bold"} : {color:"#333", "font-weight":"normal"}; } } if(treeNodes.isParent){ datagrid刷新 }else{ 提示 } var filterNodes = treeObj.getNodesByFilter(filters); function filters(node) { return (node.highlight == true); } treeObj.getNodesByParamFuzzy("CODE_NAME", searchCondition, null); function addHoverDom(treeId, treeNode) { var sObj = $("#" + treeNode.tId + "_span"); if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return; var addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增節點' onfocus='this.blur();'></span>"; sObj.after(addStr); var btn = $("#addBtn_"+treeNode.tId); if (btn) btn.bind("click", function(){ treeBusinessManager.newTreeDialog(); return false; }); }; function removeHoverDom(treeId, treeNode) { $("#addBtn_"+treeNode.tId).unbind().remove(); }; function getAllChildNodes(treeNode) { var treeObj = $.fn.zTree.getZTreeObj("sheetTree"); var childNodes = treeObj.transformToArray(treeNode); var nodes = new Array(); var j = 0; for(i = 0; i < childNodes.length; i++) { if(!childNodes[i].isParent){ nodes[j] = childNodes[i].id; j++; } } return nodes; } getChildNodes:function(treeNode,result){ if (treeNode.isParent) { var childrenNodes = treeNode.children; if (childrenNodes) { for (var i = 0; i < childrenNodes.length; i++) { result += ',' + childrenNodes[i].id; result = sheetShareManager.getChildNodes(childrenNodes[i], result); } } } return result; } function refreshNode(id) { var treeObj = $.fn.zTree.getZTreeObj("busTree"); var node = treeObj.getNodeByParam("id", id, null); if (node) { treeObj.reAsyncChildNodes(node, "refresh"); } else { setTimeout(function() { refreshNode(id); }, 10); } } function refreshParentNode(id) { var treeObj = $.fn.zTree.getZTreeObj("busTree"); var node = treeObj.getNodeByParam("id", id, null); var pNode = node.getParentNode(); if (pNode) { refreshNode(pNode.id); } else { refreshNode("0"); } }$.fn.zTree.destroy("busTree");function zTreeBeforeRename(treeId, treeNode, newName, isCancel) { if (newName.length>10||newName.trim().length<=0) { toastr.error("填寫信息不符合規則!"); var treeObj = $.fn.zTree.getZTreeObj("treeDemo"); treeObj.cancelEditName(); return false; } return true;}function zTreeOnRename(event, treeId, treeNodes, isCancel) { if(isCancel == undefined){ }} function zTreeOnRightClick(event, treeId, treeNode) { var treeObj = $.fn.zTree.getZTreeObj("busTree"); treeObj.selectNode(treeNode); 注意:設置選中節點,才能去對應的操作方法中獲取選中的幾點 (var treeObj = $.fn.zTree.getZTreeObj("busTree"); var nodes = treeObj.getSelectedNodes();) $('#configure-tree-menu').menu('show',{left: event.pageX,top: event.pageY}); }; for (var i=0, l=nodes.length; i < l; i++) { treeObj.removeNode(nodes[i]); } var treeObj = $.fn.zTree.getZTreeObj("busTree"); treeObj.selectNode(treeNode); var nodes = treeObj.getSelectedNodes(); for (var i=0, l=nodes.length; i < l; i++) { treeObj.removeNode(nodes[i]); } <div id="configure-tree-menu" class="easyui-menu" style="width:150px;"> <div id="configureAdd" data-options="iconCls:'icon-add'">新增節點</div> <div id="configureEdit" data-options="iconCls:'icon-edit'">編輯節點</div> <div id="configureDelete" data-options="iconCls:'icon-remove'">刪除節點</div>

相關焦點

  • jquery ztree入門 - CSDN
    實現頁面驗證入門》《j2ee 簡單網站搭建:(九)jquery datatables + jquery ui dialog 插件使用入門》《j2ee 簡單網站搭建:(十)jquery ztree 插件使用入門》《j2ee 簡單網站搭建:(十一)ckeditor 控制項使用入門》 ztree 版本 v3.5.28 一 從官方網站下載 ztree 的
  • vue-ztree - CSDN
    /js/jquery-3.3.1.min.js";import "../plugins/zTree/js/jquery.ztree.core.min.js";import "../plugins/zTree/js/jquery.ztree.excheck.min.js";這三個js分別是:jQuery,建議從官方網站下載,zTree上的版本有點老,聽說有些項目已經不支持;兩個zTree核心包,就是官網提供的下載地址中的文件,我們下載下來找到這兩個文件,放到我們的項目文件夾中;官網地址:http://www.treejs.cn
  • bootstrap css ztree專題及常見問題 - CSDN
    一、下載zTree插件 地址:http://www.ztree.me二、html代碼/Scripts/zTree/js/jquery-1.4.4.min.js"></script> <script src="../Scripts/zTree/js/jquery.ztree.core-3.5.js"></script> <script src="..
  • jquery mootools - CSDN
    <script type="text/javascript" src="moo1.2.4.js"></script><script type="text/javascript" src="jquery-1.4.js"></script><script type
  • jquery 三級聯動插件專題及常見問題 - CSDN
    下面我來介紹下開發的過程:1、 首先,我們需要構思好自己需要的什麼樣子的東西,然後根據圖紙,先定好樣式和基本模型。我自己設計的頁面如下:我們需要一個點擊的按鈕,模擬成select的樣式,後面的所屬分類是展示我們的結果的地方。 下面的三個框,模擬的是下拉樣式,點擊第一個有分類的選項,出現第二個下拉,依次類推,最多是三組。
  • jquery 社交分享插件專題及常見問題 - CSDN
    iShare 是一款令人驚詫的 jquery  分享和書籤插件。它有許多功能,比如說支持分享到社交網站,支持 shortcode,可選擇激活分享到哪些社交網站,另外還有其他許多可自定義的功能。Pongstagr.am 是一個 jQuery 插件,通過使用引導前端樣式和模態插件,在你的網站上展示 Instagram 多媒體。 4. SocialShare.js
  • jquery與js的區別是什麼?js與jquery的用法區別介紹
    在學習js的時候我們肯定能夠接觸到jquery,那麼,js與jquery之間有什麼區別呢?本篇文章將給大家來分享關於jquery與js之間的區別比較,有需要的小夥伴可以參考一下,希望能夠幫助到你們。看完了對jquery與js的介紹,我們就來繼續看js與jquery的用法區別。1、jquery與js最直觀的區別就是外觀上jQuery對象比js對象多了"$()"。
  • 使用jQuery的animate()+CSS樣式實現動畫效果及stop()停止動畫
    DOCTYPE html><html><head><title></title><script src="jquery-3.3.1.js"></script><script type="text
  • JQuery的動畫操作
    樣式操作必須和按鈕點擊觸發之後進行配合使用$(document).ready(function{2.//使用jquery對象用$(this)$("#butt").click(function(){4.//獲取div樣式$("#div1").css("width");$("#div1").css("color");5.
  • 教程:---《JQuery如何工作》
    最近發現jquery很成熟了,我看了jquery官方的document,我想,如果沒有人翻譯過,我打算邊看文檔,順道邊翻譯。如果有人發現已經有人翻譯過了,勞煩通知一下,我就不做重複勞動了。這裡先提供入門章節內容。
  • JavaScript 學習 jQuery&前端小技巧
    --cdn引入(在線)-->    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/core.js"></script>     <!
  • jquery中$的作用與使用方法總結
    使用jquery.js框架使用起來方便多了!突然相起來把以住的學習資料整理一下放在這樣的一個個人知識庫中存儲下來。總體感覺Jquery.js框架最有用,這裡的有用指的就大不了就是使用起來更好理解,更方便,代碼更少,jquery體系中最重要的工具就那個代表國際財富的$!
  • JQuery
    滑鼠單擊事件 ondblclick 滑鼠雙擊事件 onblur 元素失去焦點 onfocus 元素獲得焦點 onchange 用戶改變域的內容 使用注意事項:在 jQuery 中將事件封裝成了對應的方法,去掉了JS中的 .on 語法, 例如使用onclick時只需要使用click即可2.2.2 事件的綁定和解綁 綁定事件 jquery
  • jQuery學習筆記
    /// w3school教程https://www.w3school.com.cn/jquery/index.asphttps://jquery.com/download/// 第一個為壓縮版本(將複雜的變量名簡化
  • 第八篇:jQuery的使用及元素選擇器
    本案例是相對路徑,jquery-3.5.1.min.js腳本文件放置在網頁文檔所在目錄下的script子目錄。Type屬性是腳本文件類型,一般是javascript類型。選擇器的基本語法如下:$(「expression」)expression是選擇器表達式,它完全支持CSS選擇器語法,但兩者的作用不同,CSS選擇器找到元素後主要是對樣式進行操作,而jQuery選擇器找到元素後是對元素的行為和屬性進行操作。
  • jquery實現響應式布局專題及常見問題 - CSDN
    嵌入 jQuery Mobile 框架href="http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.css />jQuery Mobile 框架包括一個 listview 組件,您將使用它顯示您的導航項。
  • 7 個 jQuery 最佳實踐
    Google CDN 是這樣的:<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script>  Microsoft CDN是這樣的:<script src="//ajax.aspnetcdn.com
  • jquery非常詳細的使用教程
    /themes/redmond/style.css"%>" />   <script type="text/javascript" src="<%=WebConfig.ResourceServer%>/JsLib/jquery/jquery-min-lastest.js"></script>      <script
  • javascript的樣式 - CSDN
    使頁面高效和快速的另一種方法是直接向樣式表中動態添加和刪除樣式,而不是不斷向DOM查詢元素和應用樣式。 運作方式如下! 獲取樣式表 (Getting the Stylesheet)Which stylesheet you add the rules to is up to you.