zTree初體驗(五)——樹間資料交換
阿新 • • 發佈:2019-01-07
我發現,樹與樹之間的交換,在網站中的應用並不多,其實這是一個很好的功能。比如說,我們專案中用的的“自定義關注”功能。因為在我們的日常工作中,我們不會跟所有人都有工作交集,相反我們總是在頻繁的跟一部分人打交道,也就是我們關注的並不是所有人,而只是跟我們工作相關的。我們可以將使用者和部門加入到自定義關注中,並可以自定義修改使用者和組的備註名稱,而且可自己調整使用者和組的順序。是不是很方便?
對於多棵樹之間拖拽的操作非常簡單,只需要建立兩棵可拖拽的樹即可,同時可根據 各種事件回撥函式 以及 zTree 的方法配合實現較複雜的操作規則,這裡只是簡單演示。根據自己的業務需要可再自行新增相應功能程式碼。
首先,給兩棵樹“佔個地兒”:
<div class="zTreeDemoBackground left">
<ul id="treeDemo" class="ztree"></ul>
</div>
<div class="right">
<ul id="treeDemo2" class="ztree"></ul>
</div>
其次,看一下實現簡單拖拽的js程式碼:
<SCRIPT type="text/javascript"> var setting = { edit: { enable: true, showRemoveBtn: false, showRenameBtn: false }, data: { simpleData: { enable: true } }, callback: { beforeDrag: beforeDrag, beforeDrop: beforeDrop } }; var zNodes =[ { id:1, pId:0, name:"父節點 1", open:true}, { id:11, pId:1, name:"葉子節點 1-1"}, { id:12, pId:1, name:"葉子節點 1-2"}, { id:13, pId:1, name:"葉子節點 1-3"}, { id:2, pId:0, name:"父節點 2", open:true}, { id:21, pId:2, name:"葉子節點 2-1"}, { id:22, pId:2, name:"葉子節點 2-2"}, { id:23, pId:2, name:"葉子節點 2-3"}, { id:3, pId:0, name:"父節點 3", open:true}, { id:31, pId:3, name:"葉子節點 3-1"}, { id:32, pId:3, name:"葉子節點 3-2"}, { id:33, pId:3, name:"葉子節點 3-3"} ]; function beforeDrag(treeId, treeNodes) { for (var i=0,l=treeNodes.length; i<l; i++) { if (treeNodes[i].drag === false) { return false; } } return true; } function beforeDrop(treeId, treeNodes, targetNode, moveType) { return targetNode ? targetNode.drop !== false : true; } $(document).ready(function(){ $.fn.zTree.init($("#treeDemo"), setting, zNodes); $.fn.zTree.init($("#treeDemo2"), setting); }); </SCRIPT>
最後,看一下效果:
哈哈,是不是很簡單,這樣一來,拖拖拽拽就能得到自己想到的內容。這裡只是簡單實現,做為拋磚引玉,具體的肉的,還得自己去補,像與節點判斷,資料庫同步……