2015-05-14 178 views
3

使用jsTree(3.1.0+)与复选框插件的是它可以允许并不是所有的复选框选中 - 禁用其中的一些?jsTree禁用一些复选框

我发现旧版本jsTree这里jstree disable checkbox解决方案,但它并没有在jsTree 3.1.0+版本。隐藏复选框jsTree Hide Checkbox

的解决方案是工作,但如果我单击该文件夹,隐藏复选框无论如何都会被检查。

谢谢。

回答

11

请记住,除非你使用checkbox.tie_selectionfalse,选择和检查是一样的。

所以,你可以简单地调用你想要禁用节点上.disable_node()


编辑:使用来自回购最新的代码(注意 - 不是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> 

当然在JSON中:

{ "id" : "Test node", "state" : { "checkbox_disabled" : true } } 

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

+0

我使用'tie_selection:FALSE',但如果我会用'.disable_node()',那么它不会设置节点,以“无法点击”呢? 'select_node'事件会触发吗? – Orbitum

+0

在这种情况下,上述解决方案将无法正常工作,我会看看是否可以想办法仅禁用复选框。 – vakata

+0

这将是伟大的!我会期待您的解决方案。 – Orbitum