1

我使用了 jquery 文件树脚本(位于http://www.abeautifulsite.net/blog/2008/03/jquery-file-tree/)和 php 连接器版本,并且有一个漂亮的 2 列扩展菜单结果。

客户端现在还想要一个相同版本的页面,但所有文件夹在页面加载时默认展开。我不知道如何做到这一点。我看过一篇解释如何默认扩展特定文件夹的帖子,但我需要默认扩展所有文件夹,因为这是一个递归文件树,客户端将向其中添加文件夹,我不需要也不应该更新 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 文件树 - 默认情况下打开文件夹?

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; 

否则即使我不想触发它也会触发。我想在搜索中扩展所有内容。

Majid 不幸的是,您的代码对我不起作用。closedFolders.length 始终为 0

于 2013-02-08T08:29:13.230 回答