2012-07-24 51 views
1

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

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

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

回答

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'); 
     //}; 
    }); 
} 

我注释掉如果statment,我设法展开所有。我也必须改变

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

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

Majid不幸的是你的代码不适合我。 closedFolders.length始终为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(); 
相关问题