jstree contextmenu - 如何保存更改

时间:2014-01-30 20:53:27

标签: jquery contextmenu jstree

我正在尝试做一件非常简单的事情,似乎已经碰到了一堵砖墙。它可能已经存在于文档中但我找不到它。

我正在尝试保存新创建的节点或重命名的节点。我从一个非常基本的设置开始:

$('#tree').jstree({
    'core' : {
        'check_callback' : true
    },
    'plugins' : ['contextmenu', 'dnd', 'state']
}).on('create_node.jstree', function(e, data) {
    console.log('saved');
});

我期待的是:
1)右键单击现有节点之一 2)点击“创建” - 即console.log('saved');点火时 3)我输入新节点的名称
4)按“enter”保存数据 - 此时我想运行一个ajax请求来保存数据库中的新节点。

如何从第4点开始捕捉事件?

2 个答案:

答案 0 :(得分:1)

该插件的作者建议侦听rename_node事件。所以工作代码是:

$('#tree').jstree({
    'core' : {
        'check_callback' : true
    },
    'plugins' : ['contextmenu', 'dnd', 'state']
}).on('rename_node.jstree', function(e, data) {
    console.log('saved');
});

答案 1 :(得分:0)

有时如果这不起作用并且您想要使用create_node事件,则使用

$('#tree').jstree({
'core' : {
    'check_callback' : true
},
'plugins' : ['contextmenu', 'dnd', 'state']
}).bind('create_node.jstree', function(e, data) {

console.log('saved');

});

这可能就是这个伎俩。或者,如果它在某些弹出窗口中被使用,则使用实时事件而不是jquery事件,那肯定会到达现场。