Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.09.2013, 12:15
Интересующийся
Отправить личное сообщение для Mrjoey Посмотреть профиль Найти все сообщения от Mrjoey
 
Регистрация: 12.09.2010
Сообщений: 26

Удаление класса только по щелчку на сам объект, но не когда кликаешь на следующий
День добрый!

Разбираюсь с jquery. Буду рад, если подскажите.

Например, имеем два блока А и B.

Простой пример, имеется аккордеон (в нем два блока А и B), открывается блок (А) по нажатию.

При клике на другой (B), (B) открывается, а предыдущий (A) сворачивается.

Т.е. всегда открыт только один блок. А должно открываться неограниченное число.

Вот всю голову сломал, как не удалять класс открытому при клике на другой, а закрывать только при втором клике на открытый блок.

Буду признателен за помощь.


$(function() {
		$('.accordeon-content').not('.active').hide();

		$('.accordeon-caption').click(function() {
			$('.accordeon-content').not($(this).next('.accordeon-content')).removeClass('active').slideUp(600);
			$(this).next('.accordeon-content').addClass('active').slideDown(600);
		})
	})
__________________
Расписание матчей [URL="http://sportlands.ru/hockey/world-championship/"]Чемпионата мира по хоккею 2012[/URL]!
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2013, 13:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Mrjoey,
а html где?
$(function() {
		$('.accordeon-content').not('.active').hide();
		$('.accordeon-caption').click(function() {
			$(this).next('.accordeon-content').toggleClass('active').slideToggle(600);
		})
	})
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2013, 13:31
Интересующийся
Отправить личное сообщение для Mrjoey Посмотреть профиль Найти все сообщения от Mrjoey
 
Регистрация: 12.09.2010
Сообщений: 26

Спасибо за ответ. Пробовал Ваш код, не выходит что-то каменный цветок(

<dl class="accordeon">
  <dt class="accordeon-caption">Заголовок</dt>
  <dd class="accordeon-content active">
123
  </dd>
  <dt class="accordeon-caption">Заголовок</dt>
  <dd class="accordeon-content">
567
  </dd>
  <dt class="accordeon-caption">Заголовок</dt>
  <dd class="accordeon-content">
890
  </dd>
</dl>
__________________
Расписание матчей [URL="http://sportlands.ru/hockey/world-championship/"]Чемпионата мира по хоккею 2012[/URL]!
Ответить с цитированием
  #4 (permalink)  
Старый 26.09.2013, 14:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Mrjoey,
и что не так ?
<!DOCTYPE HTML>

<html>

<head>
  <meta charset="utf-8">
  <title>Untitled</title>
  <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
  <script>
    $(function() {
		$('.accordeon-content').not(':first').hide();
                           $('.accordeon-content:first').addClass('active')
		$('.accordeon-caption').click(function() {
			$(this).next('.accordeon-content').toggleClass('active').slideToggle(600);
		})
	})

</script>
</head>

<body>

 <dl class="accordeon">
  <dt class="accordeon-caption">Заголовок</dt>
  <dd class="accordeon-content">
123
  </dd>
  <dt class="accordeon-caption">Заголовок</dt>
  <dd class="accordeon-content">
567
  </dd>
  <dt class="accordeon-caption">Заголовок</dt>
  <dd class="accordeon-content">
890
  </dd>
</dl>

</body>

</html>

Последний раз редактировалось рони, 26.09.2013 в 15:36.
Ответить с цитированием
  #5 (permalink)  
Старый 26.09.2013, 14:16
Интересующийся
Отправить личное сообщение для Mrjoey Посмотреть профиль Найти все сообщения от Mrjoey
 
Регистрация: 12.09.2010
Сообщений: 26

спасибо преогромное! выручили!

А можно ещё спросить, что Вы бы лично посоветовали почитать, чтобы разбираться в jquery?
__________________
Расписание матчей [URL="http://sportlands.ru/hockey/world-championship/"]Чемпионата мира по хоккею 2012[/URL]!
Ответить с цитированием
  #6 (permalink)  
Старый 26.09.2013, 14:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Mrjoey,
http://jquery.page2page.ru/
Ответить с цитированием
  #7 (permalink)  
Старый 26.09.2013, 15:25
Интересующийся
Отправить личное сообщение для Mrjoey Посмотреть профиль Найти все сообщения от Mrjoey
 
Регистрация: 12.09.2010
Сообщений: 26

Можно ещё один вопрос?

Можно как то для первого блока, по умолчанию сразу назначать класс active?
<dt class="accordeon-caption">Заголовок</dt>
      <dd class="accordeon-content">
         123
      </dd>


чтобы было вот так:
<dl class="accordeon">
	  <dt class="accordeon-caption">Заголовок</dt>
	  <dd class="accordeon-content active">
	123
	  </dd>
	  <dt class="accordeon-caption">Заголовок</dt>
	  <dd class="accordeon-content">
	567
	  </dd>
	  <dt class="accordeon-caption">Заголовок</dt>
	  <dd class="accordeon-content">
	890
	  </dd>
	</dl>
__________________
Расписание матчей [URL="http://sportlands.ru/hockey/world-championship/"]Чемпионата мира по хоккею 2012[/URL]!
Ответить с цитированием
  #8 (permalink)  
Старый 26.09.2013, 15:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от Mrjoey
Можно как то для первого блока, по умолчанию сразу назначать класс active?
смотрите код выше 4 пост
Ответить с цитированием
  #9 (permalink)  
Старый 26.09.2013, 15:47
Интересующийся
Отправить личное сообщение для Mrjoey Посмотреть профиль Найти все сообщения от Mrjoey
 
Регистрация: 12.09.2010
Сообщений: 26

Благодарю!) ларчик просто открывался.

А я полез в справочник, на который вы ссылку скинули, стали пробовать, получилось примерно так:
$('.show-layered dd.accordeon-content:first').css('display', 'block');


задумка хоть и верна по-моему, но там по умолчанию дописывается display: none;

Надо было не свойство, а класс присваивать, верно?
__________________
Расписание матчей [URL="http://sportlands.ru/hockey/world-championship/"]Чемпионата мира по хоккею 2012[/URL]!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Удаление класса при клике на объект lukingnu jQuery 3 23.04.2012 12:14