jstree - open_node在封闭节点上没有被触发

时间:2015-12-15 04:59:00

标签: jstree

我需要一种方法来在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选项。

使用上面的代码,节点显示一个关闭的图标但是当我尝试打开时,事件不会被触发;可能是因为最初没有孩子。

请告知我如何实现这一目标。

2 个答案:

答案 0 :(得分:0)

您是否可以使用id提供要创建子节点的节点,并且可能使用dblClick()事件来触发逻辑?

$('#nodeId).dblClick(function(e) {
    //logic to fetch children and create child nodes
}

https://api.jquery.com/dblclick/

答案 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