Manuel Schmidt
Manuel Schmidt

Reputation: 128

JSTree - How to force user tp only select leafs of the tree

Within my JStree i want the user to only be able to select leafs of the tree. E.g.: Nodes that have no childs. My idea is to bind the select event and manually check whether the selected node has childs and then select/not select the node accordingly.

Is there a simpler way? or is this obvious solution the only one?

Upvotes: 5

Views: 7531

Answers (3)

Seyed Ali Mahmoody
Seyed Ali Mahmoody

Reputation: 157

Simple Solution For Use CheckBox Plugin (To RadioButton Behavior) Is Here

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

In this jquery.

Upvotes: 0

Tab10id
Tab10id

Reputation: 81

2014 - version 3.0.1

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

Upvotes: 8

Radek
Radek

Reputation: 11091

You can use

  • Types plugin
  • .is_leaf() for checking if the selected node is a child- node (leaf) or not. Returning false in 'before'-Event will reject selecting the node. See the jsTree groups

In the code.

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

Upvotes: 2

Related Questions