Open liu-enel opened 3 years ago
我看到源码中有这样一段
inputObj.bind('blur', function(event) {
if (!view.editNodeBlur) {
view.cancelCurEditNode(setting);
}
}).bind('keydown', function(event) {
if (event.keyCode=="13") {
view.editNodeBlur = true;
view.cancelCurEditNode(setting);
} else if (event.keyCode=="27") {
view.cancelCurEditNode(setting, null, true);
}
}).bind('click', function(event) {
return false;
}).bind('dblclick', function(event) {
return false;
});
首先要说,都 2021年了,对于 input 来说,很多都是 blur 就直接取消编辑状态了。。。
当然,我也不能说你的要求不对,但目前的源码肯定无法支持,要么你直接修改 zTree 源码,要么你利用 beforeEditName 阻止 zTree 的编辑事件,然后你自己那边去实现一套修改名称的交互界面。
首先要说,都2021年了,对于输入来说,很多都是模糊的就直接取消编辑状态了。。。
当然,我也不能说你的要求不对,但现在的直接源码无法支持,还有你需要修改的zTree源码,还有你之前利用编辑名称阻止zTree的编辑事件,然后你自己去实现自定义修改名称的交互界面。
我现在是通过在input上强行加一个事件,去触发了两次rename的回调 解决了这个问题
const keyUpFn = event =>{
if (event.keyCode=="13") {
const zTree = $.fn.zTree.getZTreeObj("treeDemo")
confirmClick(event.data.treeNode)
}
}
...
$(`#${treeNode.tId}_input`).unbind('keyup', keyUpFn)
$(`#${treeNode.tId}_input`).bind('keyup',{treeNode}, keyUpFn)