如何禁用 Bootstrap Treeview 的父节点复选框

How to disable parent node checkbox of Bootstrap Treeview

我想让我的父文件夹名称不被选中。但我不能在这里通过单个节点的选项。

我是这样写代码的。

$("#treeview-checkable").treeview({
        data: root.attributeTopicList,
        showIcon: true,
        showCheckbox: true,
        showBorder: false,
        showTags: true,
    });

};

我遇到了同样的问题。为了从最上面的父项中删除复选框,我使用了一些变通方法。

绘制树后,我告诉它找到 data-nodeid=0 属性并删除 check-icon 类 span 元素。

所以在树初始化之后我 运行 这个:

$("#treeview-checkable").find("[data-nodeid=0]").find(".check-icon").remove();

我还检测到我页面上的每个点击事件都在做同样的事情。

window.onclick = function(){
    $("#treeview-checkable").find("[data-nodeid=0]").find(".check-icon").remove();
};

我每次点击都做同样的事情,因为我发现当我展开、折叠、对树做任何事情时,复选框会重新出现。

这是最好的解决方案吗?不,它有效吗?是的

我不得不在 bootstrapp-treeview.js 文件中添加一些行

进程-->>

  • 进入 bootstrapp_treeview.js

  • 看看它的渲染函数是如何工作的

  • 您会发现,在 treeview 触发任何事件或对 DOM 进行任何更改后,它会调用其渲染方法
  • 您将在第 486 行找到渲染方法
  • 如果您以父节点不应该有复选框的方式编写代码,只需编写

        for (var i = 0; i < $(".glyphicon-minus").length; i++)
        {
            $($(".glyphicon-minus")[i]).siblings(".check-icon").hide();
        }
        for (i = 0; i < $(".glyphicon-plus").length; i++){
            $($(".glyphicon-plus")[i]).siblings(".check-icon").hide();
        }