2012-07-24 43 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(); 
相關問題