每当在JStree中选中/取消选中某个节点时,我都需要执行递归操作。 我尝试执行以下操作,但从不调用该函数。如何在检查/取消选中节点时从JStree调用函数?
$('#jstree').on("uncheck_node.jstree", function (e, data)
{
subfunction(selectednodetouncheck, data);
};
function subfunction(para1, para2)
{
//some operation;
};
从不调用子功能....请让我知道如何调用此功能。
答案 0 :(得分:0)
您应该使用select_node
和deselect_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);
}
};