jsTree禁用一些复选框

Orb*_*tum 7 jstree

使用带有复选框插件的jsTree(3.1.0 +)是否可以允许不是所有复选框都要检查 - 禁用其中一些复选框?

我在jsree禁用复选框找到旧版jsTree的解决方案,但它在jsTree 3.1.0+版本上不起作用.

隐藏复选框的解决方案jsTree隐藏复选框工作正常,但如果我点击该文件夹,则无论如何都会检查隐藏复选框.

谢谢.

vak*_*ata 12

请记住,除非您使用checkbox.tie_selectionas false,选择和检查是一回事.

因此,您只需调用.disable_node()要禁用的节点即可.


编辑:使用repo中的最新代码(注意 - 不是3.1.1,但最新的代码):https: //github.com/vakata/jstree/archive/master.zip

您现在可以指定checkbox_disabled状态:

<div id="jstree">
    <ul>
        <li data-jstree='{"checked":true}'>checked</li>
        <li data-jstree='{"checkbox_disabled":true}'>checked</li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

当然也在JSON中:

{ "id" : "Test node", "state" : { "checkbox_disabled" : true } }
Run Code Online (Sandbox Code Playgroud)

您还可以使用enable_checkbox(node)和在运行时更改复选框的禁用状态disable_checkbox(node).

  • 当禁用复选框时,您似乎仍然可以通过单击节点上的任何其他位置来选中/取消选中它... (2认同)

Kha*_*321 5

要从特定节点完全隐藏复选框,请添加以下JS代码

$('#tree_2').on('ready.jstree', function () {
  $("#tree_2").jstree().get_node("node1_id").a_attr["class"] = "no_checkbox";
  $("#tree_2").jstree().get_node("node2_id").a_attr["class"] = "no_checkbox";

....
});
Run Code Online (Sandbox Code Playgroud)

然后在CSS中添加以下样式

.no_checkbox > i.jstree-checkbox {
	display: none;
}
Run Code Online (Sandbox Code Playgroud)

它将完全隐藏提供的节点ID中的复选框,这对我来说就像是一种魅力。感谢这个链接