0

次のようにページが読み込まれると、ダイナツリーをプログラムで読み込んでいます

function loadTree(data)
{
   var rootNode = $("#tree").dynatree("getRoot");
   $.each(data, function () {
      var childNode = rootNode.addChild({
               title: this.agent_code + ' - ' + this.holder_name,
               tooltip: this.holder_name,
               isFolder: true,
               key:this.agent_code,
       });
    });
 }

サーバーから新しいデータを取得し、新しいノードをロードしたい後、古いノードは削除されません。

function reload(data)
   {
        $("#tree").dynatree("getRoot").visit(function(node){
           node.remove();
        });
        loadTree(data)
   }

上記のコードは、1 つのノードのみを削除します。ここで何が欠けていますか。前もって感謝します

更新 次のコードを使用して回避策を試しました

function reload(data)
   {
        $("#tree").remove();
        $('#test').html('<div id="tree"></div>');
        $('#tree').dynatree(); //reinitialize the tree
        loadTree(data);
   }

リロードは行いますが、遅延読み込みによって子ノードを設定することはできません

4

2 に答える 2

1

これにより、初期ロード中に追加したすべてのノードが削除されます。

$("#tree").dynatree("getRoot").removeChildren();
于 2013-09-29T11:46:56.537 に答える