我需要一种方法来在jstree中显示一个带有关闭图标的节点但是在打开时," open_node"必须触发事件,该事件将通过本地JSON存储创建子节点。
这就是我正在尝试的
$('#treediv').jstree({
'core' : {
'check_callback': true,
'data':[{"id":"parent","text":"Parent Node","opened":false}]
}
});
$('#treediv').on('open_node.jstree', function (e, data) {
// logic to fetch children and create child nodes
});
我不想进行直接的AJAX调用,因此不能使用jstree的load-by-AJAX选项。
使用上面的代码,节点显示一个关闭的图标但是当我尝试打开时,事件不会被触发;可能是因为最初没有孩子。
请告知我如何实现这一目标。
答案 0 :(得分:0)
您是否可以使用id提供要创建子节点的节点,并且可能使用dblClick()事件来触发逻辑?
$('#nodeId).dblClick(function(e) {
//logic to fetch children and create child nodes
}
答案 1 :(得分:0)
您可以这样使用open_node
事件:
.on('open_node.jstree', function (e, obj) {
// remove dummy node that was used to enable collapsed icon
$('#tree').jstree().delete_node('dummy');
//add new data from json
for(var i=0, len=newData.length; i<len; i++){
var nodeId = $('#tree').jstree().create_node(obj.node.id, newData[i]);
}
})
检查小提琴Fiddle