在JStree

时间:2017-01-31 16:30:18

标签: jstree

每当在JStree中选中/取消选中某个节点时,我都需要执行递归操作。 我尝试执行以下操作,但从不调用该函数。如何在检查/取消选中节点时从JStree调用函数?

 $('#jstree').on("uncheck_node.jstree", function (e, data)
{
subfunction(selectednodetouncheck, data); 
};

function subfunction(para1, para2)
{
//some operation; 
}; 

从不调用子功能....请让我知道如何调用此功能。

1 个答案:

答案 0 :(得分:0)

您应该使用select_nodedeselect_node,如下所示。如果要单独检查并选择节点,则需要将树配置中的tie_selection复选框插件参数设置为false,并手动选择/取消选择节点。

检查演示 - Fiddle Demo

$("#jstree")
    .jstree({
        core: {
            data: coredata,
            check_callback: true
        },
        plugins: ["checkbox"],
        checkbox: {
            tie_selection: false
        }
    })
    .on("select_node.jstree deselect_node.jstree", function(e, data) {
        subfunction(data);
    })
    .on("check_node.jstree uncheck_node.jstree", function(e, data) {
        subfunction2(data);
    });

function subfunction(data) {
    //some operation;
    alert('You got me selected: ' + data.node.state.selected)
};

function subfunction2(data) {
    //some operation;
    alert('You got me checked: ' + data.node.state.checked);

   //  now you need to decide what you want to select or not
   // and do it manually, e.g. like below
    var selectFlag = true; 

    if (selectFlag) {
        var action = data.node.state.checked ? 'select_node' : 'deselect_node';
        $("#jstree").jstree(action, data.node);
    }

};