Disable Multiple Selection in JSTree is not working

Nirav Kamani picture Nirav Kamani · Sep 3, 2015 · Viewed 10.9k times · Source

I am using JSTree in my application with following code.

this.CreateTreeView = function () {
    $('#jstree_demo_div').jstree({
        'core': {
            'multiple': false,
            'data': [
               { "id": "ajson1", "parent": "#", "text": "Simple root node" },
               { "id": "ajson2", "parent": "#", "text": "Root node 2" },
               { "id": "ajson3", "parent": "ajson2", "text": "Child 1" },
               { "id": "ajson4", "parent": "ajson2", "text": "Child 2" },
            ]
        }
    });
}

As shown in my code i am trying to disable multiple selection.

Now when i use following code to select node.

$("#jstree_demo_div").jstree().select_node("ajson3");
$("#jstree_demo_div").jstree().select_node("ajson4");

Still it select both node. So it becomes like multiple selection from Javascript.

I am putting this question just to confirm that is it correct working of JSTree?

I know that i can deselect all node before selecting any node using deselect_all function.

But according to me if multiple selection is set to false then selecting node from javascript also should select only one node.

Please correct me if i am wrong.

Answer

vakata picture vakata · Sep 4, 2015

select_node will select a node regardless of the multiple setting.

The setting only limits user interaction, select_node is a lower level method and will not be limited, so you (the developer) can modify the selection programmatically without limitation.

If you want to use the same function that is triggered by user interaction (and is therefore limited by multiple) use activate_node.