2

我的树视图示例

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

我写了这样的代码。

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

};
4

2 回答 2

4

我必须在 bootstrap-treeview.js 文件中添加一些行

代码看起来像这样

流程-->>

  • 进入 bootstrap_treeview.js

  • 看看它的渲染功能是如何工作的

  • 你会发现在 treeview 触发任何事件或对 DOM 进行任何更改后,它会调用它的 render 方法
  • 你会在第 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();
        }
    
于 2017-10-26T07:02:57.323 回答
1

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

绘制树后,我告诉它找到 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();
};

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

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

于 2017-10-23T15:26:07.013 回答