Выделение дерева файлов 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');
  }
});
Другие вопросы по тегам