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

Man*_*idt 5 jquery jstree

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

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

小智 6

2014年 - 3.0.1版

$('#jstree').on('activate_node.jstree', function(e, data) {
  if(data.instance.is_leaf(data.node)) {
    ...
  }
});
Run Code Online (Sandbox Code Playgroud)


Rad*_*dek 2

您可以使用

  • 类型插件
  • .is_leaf() 用于检查所选节点是否是子节点(叶子)。在“before”事件中返回 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; 
        } 
}) 
Run Code Online (Sandbox Code Playgroud)

  • 根据记录,我必须将 if 表达式反转为 **if (! x.is_leaf())** 因为我只想选择叶子。例如,如果 is_leaf 不为 true,则返回 false。 (2认同)