Выделение дерева файлов jquery выделено
Я реализую jQueryFileTree ( http://www.abeautifulsite.net/jquery-file-tree/) в качестве файлового браузера и хотел бы, чтобы каждый файл или каталог, по которому пользователь нажимал, оставался выделенным. Я знаю, что это можно сделать с помощью простого JavaScript или CSS, но я недостаточно хорошо понимаю исходный код, чтобы знать, как и где реализовать выделение. Может кто-то указать мне верное направление?
3 ответа
Ну, вы можете захватить клик, используя click
обработчик и добавить класс, используя addClass
,
$('.thing-i-will-click-on').click(function() {
$(this).addClass('selected');
});
Вы также можете удалить класс, используя аналогичный метод.
$('.selected').removeClass('selected');
Объединение этих двух вещей должно дать вам желаемый результат.
Так что после небольшой переделки я заставил ее работать!
Сначала вам нужно перейти в jqueryFileTree.js и изменить строку 80 из этого:
h($(this).attr('rel'));
чтобы:
h($(this));
Это вернет объект, по которому щелкнули, а не имя файла. Чтобы получить имя файла в функции (file) в определении.fileTree, вы должны будете использовать:
file.attr('rel');
Теперь у вас есть объект, и вы можете использовать его в функции (файле), чтобы выделить ваш код. (выбранный класс CSS, который я создал, изменяет цвет фона)
$(".selected").removeClass('selected');
file.addClass('selected');
$('#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');
}
});