Добавление-удаление класса родителю
Помогите нубу плиз.
Есть разворачивающийся-сворачивающийся блок div.hideCont с текстом на jquery. Как добавить класс родительскому блоку div.ba_item_in при клике на а.hideBtn, а при клике на а.hideBtn.hide этот класс обратно удалить?
$(document).ready(function(){
$('a.hideBtn,a.hideBtn.hide').click(function(){
var Prnt=$(this).parents('.hideWrap:first');
Prnt.find('a.hideBtn').toggle();
Prnt.find('div.hideCont').slideToggle('normal');
return false;
});
});
<style type="text/css">
div.hideCont, a.hideBtn.hide { display:none; }
</style>
<div class="ba_item_in group">
<div class="ba_item_desc">
<p>текст текст текст</p>
<div class="hideWrap">
<a class="hideBtn" href="#">Подробнее</a>
<div class="hideCont">
<p>текст текст текст</p>
</div>
<a class="hideBtn hide" href="#">Свернуть</a>
</div>
</div>
</div>
|
<a class="hideBtn" href="#">Подробнее</a> и <a class="hideBtn hide" href="#">Свернуть</a> можно вообще-то заменить одной кнопкой со сменой режима Подробнее/Свернуть, или не пойдет?
|
Цитата:
|
Ну так выбрасывайте две кнопки и slideToggle() + toggleClass() по щелчку.
|
Цитата:
|
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<style type="text/css">
div.hideCont { display:none; }
</style>
<script>
$(function() {
$('span.modBtn').click(function() {
var b = $(this), m = b.data('swap');
m.unshift(m.pop());
b.next().slideToggle(600);
b.text(m[0]).data({swap: m});
}).data({swap: ["Подробнее", "Свернуть"]})
});
</script>
</head>
<body>
<div class="ba_item_in group">
<div class="ba_item_desc">
<p>текст текст текст</p>
<div class="hideWrap">
<span class="modBtn">Подробнее</span>
<div class="hideCont">
<p>текст текст текст</p>
</div>
</div>
</div>
</div>
</body>
</html>
|
Это не то. "Свернуть" получается над раскрытым блоком. А надо под ним.
И всё-таки главный вопрос - добавление-удаление класса блоку <div class="ba_item_in group">. |
А переставить местами эти элементы что нельзя? Или это тоже не понятно для нуба?
Меняйте местами а в коде b.next().slideToggle(600); заменить на b.prev().slideToggle(600); Для добавления/удаление класса добавить в код метод ранее указанный: $(div.ba_item_in).toggleClass('имя класса'); |
Цитата:
|
В обработчик естественно, можно после строки b.text(m[0]).data({swap: m});
|
| Часовой пояс GMT +3, время: 00:13. |