JSTree – 如何强制用户tp只选择树的叶子

在我的JStree中,我希望用户只能选择树的叶子。 例如:没有孩子的节点。 我的想法是绑定select事件并手动检查所选节点是否有子节点,然后选择/不选择相应的节点。

有更简单的方法吗? 或者这是一个明显的解决方案吗?

您可以使用

  • 类型插件
  • .is_leaf()用于检查所选节点是否是子节点(叶子)。 在’之前’ – 事件中返回false将拒绝选择节点。 请参阅jsTree组

在代码中。

$('#treeID') .bind('before.jstree', function(event, data){ switch(data.plugin){ case 'ui': if(data.inst.is_leaf(data.args[0])){ return false; } break; default: break; } }) 

2014年 – 3.0.1版

 $('#jstree').on('activate_node.jstree', function(e, data) { if(data.instance.is_leaf(data.node)) { ... } }); 
 $('#jstree').on('activate_node.jstree', function(e, data) { if(!data.instance.is_leaf(data.node)) { data.instance.deselect_node(data.node, true); } } 

如果节点不是叶子,则此代码将停用节点。

因此,只有叶子是可选择的。