1

jquery ファイル ツリー スクリプト ( http://www.abeautifulsite.net/blog/2008/03/jquery-file-tree/にあります) と php コネクタ バージョンを使用しました。結果。

クライアントは現在、同じバージョンのページも必要としていますが、ページの読み込み時にデフォルトですべてのフォルダーが展開されています。これを行う方法がわかりません。デフォルトで特定のフォルダを展開する方法を説明する投稿を見たことがありますが、これはクライアントがフォルダを追加する再帰的なファイル ツリーであり、javascript を更新する必要はありませんし、したくないため、デフォルトですべて展開する必要があります。フォルダを追加するたびに。

どんな提案でも大歓迎です!私の jQuery の知識は基本的なものです。ActionScript3の中程度の複雑さのbkgndからjQueryに入っています。

4

2 に答える 2

2

プラグインはそれを行うための構成を提供していないようです。ただし、プラグインがツリーのレンダリングを終了した後、次の方法ですべてのフォルダーを開こうとすることができます。

$(".directory a").click();

また、コールバックも存在しないため、これは少し難しいかもしれませんcomplete

アップデート

フォルダーにサブフォルダーが含まれている場合は、新しいフォルダーも開く必要があります。したがって、次のような関数を使用できます。

function openThem() {
  var closedFolders = $(".directory:not(.expanded) a");
  if(closedFolders.length > 0) {
    window.setTimeout(openThem, 1000);
    closedFolders.click();
  }
}
openThem();  
于 2012-07-24T16:35:21.247 に答える
1

同様のものが必要でしたが、検索機能が必要でした-データベースに保存されているファイルとフォルダー名を検索します。私の側をさらに複雑にするために、さまざまなレベルのセキュリティがありました。最終的に、jqueryFileTree の場合は複雑になりました。

ただし、Matija の応答をいじってみましょう: jquery file tree - folder open by default?

if (o.expanded != null) {
    $(c).find('.directory.collapsed').each(function (i, f) {
         /*if ((o.expanded).match($(f).children().attr('rel'))) {*/
            showTree($(f), escape($(f).children().attr('rel').match(/.*\//)));
            $(f).removeClass('collapsed').addClass('expanded');
        //};
    });
}

if ステートメントをコメントアウトして、すべて展開することができました。私も変わらなければならなかった

if(o.expanded == undefined) o.expanded = ''; 
if(o.expanded == undefined) o.expanded = null; 

そうしないと、トリガーしたくなくてもトリガーされます。検索だけですべてを拡張したかったのです。

残念ながら、あなたのコードは私にとってはうまくいきませんでした。closedFolders.length は常に 0 でした

于 2013-02-08T08:29:13.230 に答える