Найти и добавить / удалить класс из ссылки с соответствующим значением rel - PullRequest
1 голос
/ 02 января 2012

Почти решил это, но, похоже, мне не разрешено сопоставлять переменные внутри тега jQuery "a []". Я пытаюсь соединить интерактивную карту со списком ссылок, которые показывают активные / неактивные состояния, когда пользователь нажимает на соответствующую область на карте -

// Inside a click event with var active containing the fetch from the map

var active = "Lorem ipsum";

if($('a[rel^=' + active + ']', '.regions')) {
  if ($('a[rel^=' + active + ']', '.regions').hasClass('active')) {
    $('a[rel^=' + active + ']', '.regions').removeClass('active');
   }
   else {
     $('a[rel^=' + active + ']', '.regions').addClass('active');
   }
}

Ответы [ 2 ]

3 голосов
/ 02 января 2012

Это может быть то, что вы ищете. Я предполагаю, что у вас есть некоторый класс ссылок, которые вы хотите переключить, поэтому вам, вероятно, следует добавить это к селектору, чтобы не выбирать все ссылки, но это удаляет активный класс из всего, а затем добавляет его обратно только к тем с атрибутом rel, который вы взяли с карты.

var active = 'something';
$('a').removeClass('active').filter('a[rel^="'+active+'"]').addClass('active');
1 голос
/ 02 января 2012

Вы не можете использовать переменные внутри строки.Объединить строки со значением переменной:

if($('a[rel^=' + active + ']')) {
...