javascript - 在使用 jstree 重命名之前双击以编辑节点

标签 javascript jquery jstree

我设置了一个 jstree(在 div id ="surveyManager"上)。我已经将 dbclick 和重命名函数绑定(bind)到它,如下所示:

 .bind("rename.jstree", function (node, data) {
            edit_node(node,data);
}),

.bind("dblclick.jstree", function (event) {
            //Double Click to Rename
                    jQuery("#surveyManager").jstree("rename");
    })

这里的 edit_node 是一个函数,必须实现才能通过 ajax 调用传递所有节点信息。

是否可以设置树,以便在 dbclick 上,而不是重命名节点,我可以只触发 edit_node(node,data)。也许另一个 jstree 函数,或者我可以在其他地方定义它。请帮忙

最佳答案

我不确定我是否理解你的问题,但如果你想双击重命名,请尝试:

    tree.off('dblclick').on('dblclick','.jstree-anchor', renameNode);               

    function renameNode() {
        var instance = $.jstree.reference(this),
        node = instance.get_node(this);
        var old = node.text.replace(/\s+$/, ''); // trim right spaces

        inst.edit(node, null, function(node, success, cancelled) {
            if (!success || cancelled) return;
            if (node.text.replace(/\s+$/, '')==old) return;

            // all good, your rename code here
        });
    }

需要.off('dblclick') 来防止双击默认的jstree 打开节点

请注意,如果您还在某处绑定(bind)了树的“点击”事件,它也会触发 dblclick。将 'click' 更改为 'singleclick' 并使用 jquery.singleclick.js

关于javascript - 在使用 jstree 重命名之前双击以编辑节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21000150/

相关文章:

jquery - json结果返回错误

javascript - 将 JSTree 节点拖到外部 div 中

javascript - JsTree 拖放 - 移动时图标不显示

javascript - PhantomJS - 单击元素

javascript - 以 1 秒为间隔计数 1-10 并在 div 类框中打印

javascript - LG 智能电视音量控制

javascript - Node.js 中的包和模块有什么区别

javascript - 改变图像src jquery动画

javascript - getJSON 类型错误 e 未定义

javascript - 在 chrome 中刷新没有树 'flashing' 的 jstree