2012-04-09 127 views
1

可以在节点创建后使用java脚本提示中的值重命名节点标题吗?jsTree创建节点,使用JS提示重命名节点标题

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

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

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

和节点名称将从值自动重命名从用户

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

这些是从树状结构菜单中获取弹出窗口的脚本。

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

回答

2

没有必要绑定到rename_node事件处理程序。您可以重写上下文菜单“重命名”对象以运行您自己的自定义功能。

$(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" ] 
}); 
});