需要實現支持增刪操作的無限級樹狀菜單,自行基於 AJAX 開發效果不理想,尋求成熟方案。
zTree 是一款依賴 jQuery 的功能強大的樹插件,完美支持無限級數據、異步加載、拖拽、編輯(增刪改)、複選框等特性。
setting 對象控制行為,無需大量代碼。async.enable = true 按需從服務器獲取子節點。edit.enable = true,提供新增、刪除、重命名回調接口。onClick、onRemove、onRename 等滿足業務交互。<ul id="treeDemo" class="ztree"></ul>
<script>
var setting = {
async: {
enable: true,
url: "/api/tree/nodes",
autoParam: ["id=parentId"]
},
edit: {
enable: true,
showRemoveBtn: true,
showRenameBtn: true
},
callback: {
onRemove: function(treeId, treeNode) {
// AJAX 刪除節點
$.post("/api/tree/delete", {id: treeNode.id});
},
onRename: function(treeId, treeNode, isCancel) {
if (!isCancel) {
$.post("/api/tree/rename", {id: treeNode.id, name: treeNode.name});
}
}
}
};
$.fn.zTree.init($("#treeDemo"), setting);
</script>
建議直接從官網下載最新版,引入 jquery.ztree.all.min.js 及對應 CSS 即可開始開發。