【问题标题】:How to disable parent node checkbox of Bootstrap Treeview如何禁用 Bootstrap Treeview 的父节点复选框
【发布时间】:2017-09-21 08:32:43
【问题描述】:

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

我写了这样的代码。

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

};

【问题讨论】:

    标签: javascript jquery treeview bootstrap-treeview


    【解决方案1】:

    我必须在 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();
          }
      

    【讨论】:

    • 但是,对于 (var i = 0; i
    • 你也可以使用 remove() 从 dom 中彻底删除复选框
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 我在它的库文件的 .js 上写了一些代码。 :) 在我的情况下,父文件夹 nodeid 并不保证只有“0”
    • 我看到您在下面的解决方案没有删除该复选框。请注意这一点,因为如果您使用他们的“checkAll”功能,它仍然可以在隐藏时进行检查。否则,您的解决方案效果很好。抱歉,我没有意识到这是为所有父母准备的,我以为这只是第一次。
    • 再次,您也可以在 CheckAll 函数中使用这些行。因为,调用 checkall 后,最终会再次调用 render 函数,默认使用这行代码。根本没有机会检查父框。在可能的情况下:我没有使用 checkall ,这是迄今为止我得到的最佳解决方案
    • 不用担心。只是想确定一下。
    猜你喜欢
    • 2010-10-16
    • 2015-06-18
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2017-07-04
    相关资源
    最近更新 更多