jsTree创建节点,使用JS提示重命名节点标题

时间:2012-04-09 10:35:00

标签: jquery contextmenu jstree

是否可以在创建节点后使用java脚本提示符中的值重命名节点标题?

![用户右键单击并在树上创建新节点] [1] 创建新节点后,用户将自动转到弹出菜单并要求输入节点名称

用户创建新节点:http://i.stack.imgur.com/X6hIl.png

用户提示输入新节点名称:http://i.stack.imgur.com/WJmJw.png

,节点名称将自动从用户

的值重命名

这样做是因为弹出屏幕实际上将从数据库执行查询操作并将特定字符串作为节点标题发送回来

这些是从树上下文菜单中获取弹出窗口的脚本。

    $(function () {
        $("#demo1").jstree({ 
    "plugins" : [ "themes", "html_data", "crrm", "contextmenu" ]
        })
        .bind( "rename_node.jstree", function (e, data) {    
    var data = prompt("enter node name ");
        });
    });

1 个答案:

答案 0 :(得分:2)

无需绑定到rename_node事件处理程序。您可以重写contextmenu“rename”对象以运行自己的自定义函数。

$(function () {
 $("#demo1").jstree({   
    "contextmenu" : {
        items : { // Could be a function that should return an object like this one
            "create" : false,
            "rename" : {
                            "_class"            : "myClass",
                            "separator_before"  : false,
                            "separator_after"   : false,
                            "label"             : "Rename Node",
                            "action"            : function (obj) {
                                                    //Do some action here or pass the object to another function
                                                    //ex: myFunc(obj);
                                                    $(obj).find("a:first").text("My new node label.");
                                                }
                        },
            "remove" : false,
            "ccp" : false
        }
    },
    "plugins" : [ "themes", "html_data", "crrm", "contextmenu" ]
 });
});