Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.11.2014, 09:47
Новичок на форуме
Отправить личное сообщение для iprazor Посмотреть профиль Найти все сообщения от iprazor
 
Регистрация: 03.03.2014
Сообщений: 4

Не работает if - else условие
Доброго времени суток.
Пытаюсь сделать простенький спойлер для скрытия контента кликом:

Каркас:
<div class="spoiler-wrapper">
<div class="spoiler unfolded">Открытый</div>
<div class="spoiler-text">text</div>
</div>

<div class="spoiler-wrapper">
<div class="spoiler folded">Закрытый</div>
<div class="spoiler-text">text</div>
</div>


Скрипт:
jQuery(document).ready(function(){         
   if(jQuery('.spoiler').hasClass("unfolded")) {
            jQuery('.spoiler-text').show();
   }
   else if(jQuery('.spoiler').hasClass("folded")) {
       jQuery('.spoiler-text').hide();
   }                        
        jQuery(".spoiler").click(function(){
			jQuery(this).toggleClass("folded").toggleClass("unfolded").next().slideToggle();
	   })       
	})


Ссылка на fiddle:http://jsfiddle.net/96FY6/21/

По замыслу состояние дивов-спойлеров должно меняться, в зависимости от присвоенного класса (folded - контент скрыт, unfolded - показан).
Однако на практике ко всем спойлерам применяется условие, объявленное первым.
Реально ли реализовать такой функционал, для одноимённых дивов?
Ответить с цитированием
  #2 (permalink)  
Старый 24.11.2014, 10:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

iprazor,
условие ненужно, во вторых всё заменяет одна строка в css.
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
jQuery(document).ready(function(){
   jQuery('.spoiler.unfolded + div').show(); //??? нужно ли
   jQuery('.spoiler.folded + div').hide() ;// .spoiler.folded + div {display: none;}
        jQuery(".spoiler").click(function(){
			jQuery(this).toggleClass("folded").toggleClass("unfolded").next().slideToggle();
	   })
	})

  </script>
</head>

<body>
<div class="spoiler-wrapper">
<div class="spoiler unfolded">Открытый</div>
<div class="spoiler-text">text</div>
</div>

<div class="spoiler-wrapper">
<div class="spoiler folded">Закрытый</div>
<div class="spoiler-text">text</div>
</div>

</body>
Ответить с цитированием
  #3 (permalink)  
Старый 25.11.2014, 03:13
Новичок на форуме
Отправить личное сообщение для iprazor Посмотреть профиль Найти все сообщения от iprazor
 
Регистрация: 03.03.2014
Сообщений: 4

Огромное спасибо, то, что надо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11