2011-09-15 49 views
1

ツリービューのDyna Treeプラグインを使用しています。JQueryのLazyloadのすべてのノードを展開するdynatree

さて、私は怠惰なロード機能を使用しています親ノードを拡大しながら、

onLazyRead: function(node){ 
    node.appendAjax({ 
    url: TREEVIEW_JSON_URL 
    }); 
} 

今、私はすべての子を拡張したいとサブ子はそれらがlazyLoadと私の応答で利用されているノード。現在のシナリオでは、子ノードのみを展開できます。

私にこれを手伝ってください。事前に感謝

答えて

7

あなたはこの(ただし、それをテストしていない)のような何かを試みることができる:そこ

$("#tree").dynatree({ 
    […] 
    onLazyRead: function(node){ 
     node.appendAjax({url: TREEVIEW_JSON_URL, 
         success: function(node) { 
          // Called after nodes have been created and the waiting icon was removed. 
          // now expand all children 
          node.visit(function(n){ 
           n.expand(true); 
           }); 
          } 
         }); 
    }, 
    […] 
}); 
+0

こんにちは、返事が遅れて申し訳ありませんが。あなたのサンプル提案をテストするために私のサービスはダウンしています。あなたが提案したコードを使用して、ツリーレベルが拡張されますが、それは子供のノードがajax遅延読み込みによって呼び出されています。これらのajax呼び出しを停止し、データが存在するまで拡張する方法はありますか? – Max

+0

'node.hasChildren()'を呼び出して、子ノードが存在するかどうかを調べることができます。また、サーバーがJSONデータに '' expand ':true'を追加するようにすることもできます.JSONデータは最も効率的な方法です(JavaScriptは必要ありません)。 – mar10

+0

おかげで、私の問題は解決しました。 – Max

関連する問題