Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Реализация аккордиона (https://javascript.ru/forum/events/54173-realizaciya-akkordiona.html)

pensill 06.03.2015 20:24

Реализация аккордиона
 
Нужно реализовать следующее: При нажатии на заголовок открывается его содержимое, а вот другие элементы наоборот закрываются. При этом у заголовка меняется бэкграунд (с плюса на минус).
Знаю как реализовать через toggle() , но как я понимаю во второй версии JQ он не работает.
В общем прошу помощи
Исходный код
http://jsbin.com/xihalu/1/

рони 06.03.2015 20:43

pensill,
помощь то в чём нужна?

рони 06.03.2015 20:48

pensill,
может тут чего пригодится
http://javascript.ru/forum/jquery/45...tml#post302737

pensill 06.03.2015 20:55

Вот ссылка с кодом - http://jsbin.com/xihalu/1/edit?html,css,js,output
Сейчас у меня реализовано все что надо. Кроме того, чтобы при клике по самому элементу, под ним убирался текст и у него менялся бэкграунд с минуса на плюс

рони 06.03.2015 21:12

pensill,
$('.accordion__h2').on('click', function(){
    $('.accordion__h2').not(this).removeClass('accordion__h2--minus');
    $('.accordion__text').not($(this).next()).fadeOut(400);
    $(this).next().slideToggle(800);
    $(this).toggleClass('accordion__h2--minus');

  });

pensill 07.03.2015 09:52

спасибо. not(this) - то что надо. А вообще есть замена toggle() ? Чтобы при одном щелчке мыши происходило одно, и при втором щелке - другое?

hhh 07.03.2015 10:19

pensill,
ага, есть условие с флагом
<script src="http://code.jquery.com/jquery-latest.js"></script>

<button>button</button>
<p>Lorem ipsum dolor sit amet!</p>

<script>
var flag = true;

$('button').click(function (){
  if (flag) {
    $('button + p').hide();
    flag = 0;
  } else {
    $('button + p').show();
    flag = 1;
  }
});
</script>

рони 07.03.2015 11:06

Цитата:

Сообщение от pensill
есть замена toggle()

http://javascript.ru/forum/jquery/40...tml#post263492


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