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

时间:2011-12-14 10:08:51

标签: jquery jstree

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

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

3 个答案:

答案 0 :(得分:6)

2014 - 3.0.1版

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

答案 1 :(得分:2)

您可以使用

  • Types plugin
  • .is_leaf()用于检查所选节点是否为子节点 - 节点(叶子)与否。在'之前' - 事件中返回错误将拒绝 选择节点。请参阅jsTree groups

在代码中。

$('#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; 
        } 
}) 

答案 2 :(得分:0)

使用复选框插件(针对RadioButton行为)的简单解决方案在这里

$('#treeview').bind('activate_node.jstree', function (event, data) {
            if (data.instance.get_checked().length > 1) {
                data.instance.uncheck_all();
            }
        });