2015-07-06 7 views
4

Я реализую jQueryFileTree (http://www.abeautifulsite.net/jquery-file-tree/) в качестве файлового браузера и хотел бы, чтобы каждый файл или каталог нажимал кнопку, чтобы оставаться выделенным. Я знаю, что это можно сделать с помощью простого JavaScript или CSS, но я недостаточно понимаю исходный код, чтобы знать, как и где реализовать выделение. Может кто-то указать мне верное направление?jquery file tree highlight selected

ответ

1

Ну, вы можете сделать захват с помощью обработчика click и добавить класс, используя addClass.

$('.thing-i-will-click-on').click(function() { 
    $(this).addClass('selected'); 
}); 

Вы также можете удалить класс с использованием аналогичного метода.

$('.selected').removeClass('selected'); 

Объединение этих двух предметов должно дать желаемый результат.

+0

Право. Но если вы знакомы с исходным кодом файла jquery filetree, неясно, где добавить функцию щелчка или «выбранный» класс – Eroth

+0

@Eroth. Вы не добавляете его в источник FileTree. Вы запускаете его в своем собственном коде. –

0
$('#your_filelist_id').fileTree({ 
    root: '/', 
    script: '/connectors/jqueryFileTree.php' 
}, function(file) { 
    var flist = $('#your_filelist_id a[rel="' + file + '"]'); 
    if(flist.hasClass('selected')) { 
    flist.removeClass('selected'); 
    } 
    else { 
    flist.addClass('selected'); 
    } 
}); 
1

Так что после небольшого переделания я получил его на работу!

Сначала вы должны пойти в jqueryFileTree.js и изменить строку 80 из этого:

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

к:

h($(this)); 

Это возвращает объект, который щелкнули вместо файла имя. Для того, чтобы получить имя файла в функции (файл) в определении .fileTree вы будете использовать:

file.attr('rel'); 

Теперь у вас есть объект, и вы можете использовать это в функции (файл), чтобы выделить вы код. (выбранный класс CSS, который я создал, который меняет цвет фона)

$(".selected").removeClass('selected'); 
file.addClass('selected');