成功执行ajax请求后在jstree中附加子节点的问题

时间:2014-06-13 04:52:47

标签: javascript jquery ajax tree jqtree

我遇到了将子节点附加到树的问题。情景是, 我想使用ajax调用加载节点箭头上的树节点。因此,为了获得树结构,最初只将根级节点传递给树,并且树工作正常,但是当我单击箭头时,它进行ajax调用,它采用下一级节点层次结构但它会覆盖以前的树结构。

我有:

<script type="text/javascript">
$(document).ready(function() {
$(function() {
      var $tree = $('#themes');
        $tree.tree({
            autoOpen: false,
                    dataUrl: "{% url 'get_root_hierarchy' grpid node.pk %}",
            });

        $tree.bind(
            'tree.open',
            function(event) {
                var node = event.node;                  
                $.ajax({
                  async : true,
                  type: "GET",
                  url: "{% url 'get_hierarchy' grpid %}?id=" + node.id,
                  datatype: "html",
                  success: function(data) {
                                      var data = $.parseJSON(data) ;
                                      $tree.tree({
                                          data:data
                                      });        
                  }

                });
            }
        );

    });

});
</script>

<div id="themes">  </div>

当我点击箭头进行ajax调用时,这会操纵并发送子节点层次结构,ajax success函数会正确接收输出,但它会覆盖整个树结构,然后显示该被点击节点的新结构。 我想将子结构附加到前一个节点结构,请建议我如何实现

1 个答案:

答案 0 :(得分:0)

您是否尝试过append node功能?

success: function(data) {
     var data = $.parseJSON(data) ;
      $tree.tree(
        'appendNode', data, node
      );
   }