Вы не можете знать это по встроенным функциям, но вы можете изменить 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
), и теперь вы можете видеть в консоли, что происходит с вашим узлом. Вместо console.log
вы можете добавить некоторый класс к вашему элементу в качестве флага и прочитать его позже или сделать свое собственное событие, но я не знаю, как это сделать. Вам решать.