Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2015, 11:58
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

Добавление-удаление класса родителю
Помогите нубу плиз.
Есть разворачивающийся-сворачивающийся блок 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>
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2015, 12:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<a class="hideBtn" href="#">Подробнее</a> и <a class="hideBtn hide" href="#">Свернуть</a> можно вообще-то заменить одной кнопкой со сменой режима Подробнее/Свернуть, или не пойдет?
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2015, 12:15
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

Сообщение от laimas Посмотреть сообщение
<a class="hideBtn" href="#">Подробнее</a> и <a class="hideBtn hide" href="#">Свернуть</a> можно вообще-то заменить одной кнопкой со сменой режима Подробнее/Свернуть, или не пойдет?
Конечно подойдет. Это же на скорость не повлияет
Ответить с цитированием
  #4 (permalink)  
Старый 12.03.2015, 12:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну так выбрасывайте две кнопки и slideToggle() + toggleClass() по щелчку.
Ответить с цитированием
  #5 (permalink)  
Старый 12.03.2015, 12:28
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

Сообщение от laimas Посмотреть сообщение
Ну так выбрасывайте две кнопки и slideToggle() + toggleClass() по щелчку.
Я ж говорю, - нуб. Поэтому и прошу помощи с кодом.
Ответить с цитированием
  #6 (permalink)  
Старый 12.03.2015, 12:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<!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>
Ответить с цитированием
  #7 (permalink)  
Старый 12.03.2015, 12:54
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

Это не то. "Свернуть" получается над раскрытым блоком. А надо под ним.
И всё-таки главный вопрос - добавление-удаление класса блоку <div class="ba_item_in group">.
Ответить с цитированием
  #8 (permalink)  
Старый 12.03.2015, 13:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А переставить местами эти элементы что нельзя? Или это тоже не понятно для нуба?

Меняйте местами а в коде

b.next().slideToggle(600);

заменить на

b.prev().slideToggle(600);

Для добавления/удаление класса добавить в код метод ранее указанный:

$(div.ba_item_in).toggleClass('имя класса');
Ответить с цитированием
  #9 (permalink)  
Старый 12.03.2015, 13:14
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

Сообщение от laimas Посмотреть сообщение
Для добавления/удаление класса добавить в код метод ранее указанный:

$(div.ba_item_in).toggleClass('имя класса');
Прошу прощения. Куда именно добавить этот код?
Ответить с цитированием
  #10 (permalink)  
Старый 12.03.2015, 13:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В обработчик естественно, можно после строки b.text(m[0]).data({swap: m});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присвоение класса родителю при наведении на дочерний alexmoreman jQuery 7 19.01.2015 17:26
удаление класса dikucher Элементы интерфейса 2 29.11.2013 03:48
добавление, удаление класса ("мигание") bpystep Общие вопросы Javascript 2 09.08.2013 13:44
Добавление класса родителю Сергей123 Элементы интерфейса 1 10.04.2013 13:24
Добавление и удаление полей в форму anoth3r Events/DOM/Window 1 11.09.2009 15:10