jquery文件树 - 默认情况下打开所有文件夹?

时间:2012-07-24 14:59:50

标签: jquery

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

客户端现在还需要相同版本的页面,但默认情况下会在页面加载时展开所有文件夹。我不知道如何做到这一点。我已经看过一篇文章,解释了默认情况下如何扩展特定文件夹,但我需要默认扩展所有文件,因为这是一个递归文件树,客户端将添加文件夹,我不会也不应该要更新javascript每次他们添加文件夹。

任何建议都将不胜感激!我的jQuery知识是基本的。我只是从ActionScript3中复杂性bkgnd进入jQuery。

2 个答案:

答案 0 :(得分:2)

似乎插件没有提供配置来执行此操作。但是,您可以尝试在插件完成呈现树之后打开所有文件夹

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

这可能有点棘手,因为它也没有提出complete回调。

更新

如果文件夹包含子文件夹,则还需要打开新文件夹。所以你可以使用这样的函数:

function openThem() {
  var closedFolders = $(".directory:not(.expanded) a");
  if(closedFolders.length > 0) {
    window.setTimeout(openThem, 1000);
    closedFolders.click();
  }
}
openThem();  

答案 1 :(得分: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; 

否则即使我不想要它也会触发。我想扩大所有搜索范围。

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