Не уверен, есть ли способ "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')
if, и она будет работать.
Чтобы вы могли:
Измените строку 36 на
fileTree: function(o, h, dire) {
От 65 до 66 добавить
dire($(this).attr('rel'));
Если вы хотите иметь больше контроля / гибкости / информации, вы можете сделать dire($(this));
, и он отправит объект jQuery вместо просто атрибута rel
.
* * Пример тысячи двадцать-одина: * ** 1023 тысячу двадцать две *
$(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
});
});
Я не проверял это, возможно, вам придется изменить пару вещей вокруг.