代码之家  ›  专栏  ›  技术社区  ›  deltaforce

如何编辑jsTree节点并获取新名称?

  •  1
  • deltaforce  · 技术社区  · 7 年前

    我有一个JS树,我想在其中添加节点。添加节点后,我希望用户为它命名。我想用这个名字做一个AJAX调用。但我的代码没有按预期工作。我做错什么了?

    tree.on('rename_node.jstree', function(e, data) {
      directory_name = data.text;
    })
    
    function createFolder($node) {
      $node = tree.jstree('create_node', $node, { li_attr: { "type": "folder" }});
      tree.jstree('edit', $node);
      $.ajax({
        type: "POST",
        url: new_folder,
        data: {
          'directory_name' : directory_name
        },
        success: function(message) {
          toastr.success(message);
        },
      });
    }
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   Jeremiah Tws    7 年前

    下面是我在jsfiddle.net上发现并改进的代码,用于根据来自 jsTree Get new node AFTER node is created :

    $('#jstree').jstree({
    "core" : {
        "check_callback" : true,
        "data" : ["Root"]
     }
    });
    
    $('#jstree').on('rename_node.jstree', function (e, data) {
      //data.text is the new name:
      console.log(data.text);
      //MAKE AJAX CALL HERE
    });
    
    $('button').click(function () {
         $("#jstree").jstree("create_node", null, null, "last", function (node) {
            this.edit(node);
        });
    });
    

    链接: http://jsfiddle.net/DGAF4/5244/

    推荐文章