Добавление класса текущему элементу
Доброго времени суток!
В товаре есть кнопка "Отложить". <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, время: 17:47. |