Jquery File Tree - как вернуть имя папки по клику - PullRequest
4 голосов
/ 23 октября 2010

Я установил и пытаюсь настроить дерево файлов Jquery, чтобы при щелчке по имени папки имя и путь к папке возвращались вызывающей функции.В настоящее время он только разворачивает и сворачивает папки и возвращает имя файла по щелчку файла.

Так что мне нужно вернуть папку и я не вижу, где это происходит.

Я использую php-разъем.Ниже ссылка, где я скачал пример кода: http://abeautifulsite.net/blog/2008/03/jquery-file-tree/

спасибо, Эд

Ответы [ 2 ]

8 голосов
/ 23 октября 2010

Не уверен, есть ли способ "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
    });
});

Я не проверял это, возможно, вам придется изменить пару вещей вокруг.

1 голос
/ 25 января 2011

Это сработало довольно хорошо, я просто изменил последнюю функцию на "dire", как будто это был код между строкой 65 и 66

        ... function(dire){
// do something when a dir is clicked
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...