Добавление класса текущему элементу
Доброго времени суток!
В товаре есть кнопка "Отложить". <div class="put_off favoritesDiv"> <a class="favorItem text favorites buttonItem" onclick="addFavoriteItem" id="1356" data-item="1356">Отложить</a> </div> На данный момент при клике на ссылку добавляется класс "activeFavorite" $('.favoritesDiv').addClass('activeFavorite'); Но дело в том, что на одной странице есть другой элемент с таким же классом и при клике на него класс добавляется также кнопке "Отложить", а этого не нужно. Чтобы этого избежать, делаю так: $(this).addClass('activeFavorite'); В данном случае класс применяется самой ссылке, а необходимо диву. Подскажите, пожалуйста, каким образом можно сделать так, чтобы класс применялся именно текущему диву? |
$(this).parent()...
|
Цитата:
$(this).parent().addClass('activeFavorite'); В данном случае не срабатывает :-? |
Цитата:
|
_marisha,
:-? <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .favoritesDiv.activeFavorite { border: 1px solid #FF0000; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $(".favorItem").on("click", function() { $(this).parent().addClass('activeFavorite'); }) }); </script> </head> <body> <div class="put_off favoritesDiv"> <a class="favorItem text favorites buttonItem" id="1356" data-item="1356">Отложить</a> </div></body> </html> |
Походу понятно почему вариант с
$(this).parent().addClass('activeFavorite');не срабатывает. В консоли в this находится структура $.ajax :cray: Как все работает, при клике на кнопку срабатывает функция, в которой идет ajax на файл, где в зависимости от пользователя происходит обработка результата. Данный результат возвращается в функцию и происходит добавление/удаление классов на основании полученных данных. Запутано... |
Ну так по результату ответа сервера и действуйте. Кстати, "Отложить" всегда или же все-таки только у тех, которые не добавлялись?
|
Цитата:
Или что-то делаю не так? Цитата:
|
Цитата:
PS. Если сам источник не нужен далее, то сразу сохранить родителя: var parent = $(this).parent(); $.ajax({ .... success: function(d) { //если условия ... и parent.addClass.... } }) |
Цитата:
console.log(parent)выглядит так |
Часовой пояс GMT +3, время: 16:08. |