2010-10-22 57 views
4

我已經安裝並嘗試自定義Jquery文件樹,以便在點擊文件夾名稱時,文件夾名稱和路徑返回到調用函數。目前它只展開和摺疊文件夾,並在點擊文件時返回文件名。Jquery文件樹 - 如何返回文件夾名稱文件夾點擊

所以我需要返回文件夾,並且無法看到觸發的位置。

我正在使用php連接器。 下面的鏈接是我下載的示例代碼: http://abeautifulsite.net/blog/2008/03/jquery-file-tree/

感謝, 埃德

+0

之間的代碼添加你的連接器腳本和當前的jQuery,我會告訴你需要什麼。 – 2010-10-22 21:29:44

回答

8

不知道,如果有一個「API」的方式來做到這一點。但是,如果你看一下源代碼(行64-81)

if($(this).parent().hasClass('directory')) { 
    if($(this).parent().hasClass('collapsed')) { 
     // Expand 
     if(!o.multiFolder) { 
      $(this).parent().parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing }); 
      $(this).parent().parent().find('LI.directory').removeClass('expanded').addClass('collapsed'); 
     } 
     $(this).parent().find('UL').remove(); // cleanup 
     showTree($(this).parent(), escape($(this).attr('rel').match(/.*\//))); 
     $(this).parent().removeClass('collapsed').addClass('expanded'); 
    } else { 
     // Collapse 
     $(this).parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing }); 
     $(this).parent().removeClass('expanded').addClass('collapsed'); 
    } 
} else { 
    h($(this).attr('rel')); 
} 

看起來你可以調用hasClass('directory')如果子句中的另一個功能,它會工作。

所以,你可以:

更改行36是

fileTree: function(o, h, dire) { 

65至66加

dire($(this).attr('rel')); 

如果你想有更多的控制/靈活/信息,你可以做dire($(this));,它會發送jQuery對象而不僅僅是rel屬性。

例子:

$(document).ready(function() { 
    $('#container_id').fileTree({ root: '/some/folder/' }, function(file) { 
     // do something when a file is clicked 
    }, function(dir){ 
     // do something when a dir is clicked 
    }); 
}); 

我沒有測試它,你可能需要改變一些事情左右。

1

它運作得很好,我只是改變了最後一個函數爲「可怕的」,就像是它65行和66

 ... function(dire){ 
// do something when a dir is clicked 
}