1

JQueryを使用してコンテンツをdiv要素にロードしていますが、すべて正常に機能しています。

$("#content").load('www.urltogetcontentfor.com')

これを拡張したいと思います。私が持っている構造は、各ブランチに子ブランチがアタッチされている(またはされていない)ツリーの構造です。私がしたいのは、JQueryのloadコマンドが、子がアタッチされなくなるまで再帰的に呼び出されることです。次の手順のようなもの:

  1. Jquery load関数を呼び出して、コンテンツを'content'divにロードします。
  2. load関数が子がアタッチされていることを返す場合
  3. JQueryロード関数を再度呼び出して子を取得します
  4. 子供が利用できなくなるまで、手順2と3を繰り返します。

誰かがJQueryでこれを行ったか、これを処理するプラグインを知っていますか?

ありがとう

4

1 に答える 1

3

コンテンツを再帰的にロードするには、次の原則を使用できます。

function loadTree($element) {
  $element.each(function(){
    this.load('url', function(){
      loadTree(this.find('.children'));
    });
  });
}

loadTree($('#content'));

jQuery オブジェクトを使用して関数を呼び出します。オブジェクト内の要素をループし、それぞれに対して load を呼び出します。成功のコールバックでは、ロードされたコード内の子を選択し、それ自体を呼び出します。

ただし、可能であれば、データを JSON として返し、そこから要素を作成するなど、1 つの要求を使用してツリー全体を取得するようにしてください。

于 2010-05-04T11:22:00.510 に答える