Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   При клике на ссылку смена класса соседнего DIV (https://javascript.ru/forum/jquery/48905-pri-klike-na-ssylku-smena-klassa-sosednego-div.html)

arborik 21.07.2014 16:18

При клике на ссылку смена класса соседнего DIV
 
Разметка
Таких блоков много.
<div class="work-image-wrap">
<div class="work-image">
<img src="images/screens/1.jpg" alt="" class="img-adaptive">
</div>
<div class="expand">
<span><a class="expand-link">развернуть</a></span>
</div>
</div>

Нужно что бы при клике на ссылку "a.expand-link" добавлялся к диву ".work-image" класс "height-auto"

Скрипт

$(document).ready(function(){
(".expand-link").click(function () {
$(".work-image").each(function(){
$(this).addClass("height-auto");
});
});
});

Сейчас класс добавляет, но к каждому DIV на странице, а нужно только к одному выбранному DIV.

Что я не правильно сделал?

рони 21.07.2014 17:01

arborik,
при клике найдите дедушку родителя - а у дедушки найдите соседа сверху :)

cha0s 23.07.2014 01:00

Цитата:

Скрипт

$(document).ready(function(){
(".expand-link").click(function () {
$(".work-image").each(function(){
$(this).addClass("height-auto");
});
});
});

Сейчас класс добавляет, но к каждому DIV на странице, а нужно только к одному выбранному DIV.
ты используешь .each это значит каждый элемент на странице.

$(document).ready(function(){
(".expand-link").click(function () {
$(this).parent().parent().parent().find(".work-image").addClass("height-auto");
});
});


как-то так наверное, то бишь от нажатого клика мы поднимаемся выше по родителям доходим до верхушки, с нее начинаем искать внутри класс .work-image и добавляем нужный класс.


Часовой пояс GMT +3, время: 02:16.