首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

zTree 實現雙擊節點同時勾選其所有子節點

     編輯:程式設計綜合問答

onDblClick 回調配合 checkAllNodes 實現聯動

zTree 提供 checkAllNodes 方法,配合雙擊事件可實現父節點雙擊全選子節點。

實現代碼

var setting = {
    callback: {
        onDblClick: function(event, treeId, treeNode) {
            var zTree = $.fn.zTree.getZTreeObj(treeId);
            if (treeNode.children && treeNode.children.length > 0) {
                // 獲取所有後代節點
                var nodes = zTree.transformToArray(treeNode);
                // 統一勾選
                zTree.checkAllNodes(true); // 或遍歷 nodes 逐個 setChkDisabled/setChecked
                // 更精確:僅勾選該節點及其子孫
                nodes.forEach(function(n) { zTree.checkNode(n, true, true); });
            }
        }
    }
};
$.fn.zTree.init($("#tree"), setting, zNodes);

關鍵 API

  • transformToArray(node):將節點及其所有後代轉為平坦數組。
  • checkNode(node, checked, checkTypeFlag):checkTypeFlag=true 時聯動父子勾選。
  • checkAllNodes(checked):全樹勾選/取消,慎用於大數據量。

若需異步加載子節點,先調用 reAsyncChildNodes(node, 'refresh') 待載入完成後再勾選。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved