3
我用下面的代码来重命名jstree节点(与CRRM插件):重命名jstree节点问题
$('#categoriesTree').jstree('rename');
我怎么知道该节点是否成功更名为(按Enter键)或重命名被取消(由按Esc)?事件'rename_node.jstree'不提供有用的信息。
我用下面的代码来重命名jstree节点(与CRRM插件):重命名jstree节点问题
$('#categoriesTree').jstree('rename');
我怎么知道该节点是否成功更名为(按Enter键)或重命名被取消(由按Esc)?事件'rename_node.jstree'不提供有用的信息。
你不能通过内置函数知道它,但你可以修改jquery.jstree.js。 在非压缩版本查找字符_show_input : function (obj, callback)
(近线1263),你会看到:
"blur" : $.proxy(function() {
var i = obj.children(".jstree-rename-input"),
v = i.val();
if(v === "") { v = t; }
h1.remove();
i.remove(); // rollback purposes
this.set_text(obj,t); // rollback purposes
this.rename_node(obj, v);
callback.call(this, obj, v, t);
obj.css("position","");
console.log('click outside or blur after esc/enter');
}, this),
"keyup" : function (event) {
var key = event.keyCode || event.which;
if(key == 27) { this.value = t; this.blur();
console.log('press esc');
return; }
else if (key == 13) {
this.blur();
console.log('press enter');
return;
} else {
h2.width(Math.min(h1.text("pW" + this.value).width(),w));
}
}, //...
我加了三行这里(console.log
),现在你可以在控制台中看到什么与你的节点发生。你可以添加一些类到你的元素作为标志,而不是在以后读取它,或者创建自定义事件,但我不知道如何做到这一点。随你便。