Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Спойлер с динамической подгрузкой (https://javascript.ru/forum/jquery/67079-spojjler-s-dinamicheskojj-podgruzkojj.html)

daslex 27.01.2017 15:37

Спойлер с динамической подгрузкой
 
Пример спойлера
https://jsfiddle.net/7tos445e/

Мне нужно почти это же, но нужно сокрытие показанного. Т. е. в любой один момент времени или спойлеры вообще не раскрыты, или должен быть раскрыт только один спойлер.

Если один спойлер был раскрыт, и произошел клик, активирующий раскрытие второго спойлера, то сначала показываемый спойлер должен скрыться, а после этого должен раскрыться активированный.

Покажите, пожалуйста, как это сделать.

TestUser013 27.01.2017 16:23

https://jsfiddle.net/7tos445e/1/

daslex 27.01.2017 16:52

Спасибо.
Если всё это можно это организовать без задержек, было бы очень хорошо.

рони 27.01.2017 16:55

Цитата:

Сообщение от daslex
Если всё это можно это организовать без задержек

это про что?

Dilettante_Pro 27.01.2017 16:57

рони,
Цитата:

Сообщение от рони
это про что?

Похоже, про .fadeOut('slow')

рони 27.01.2017 17:00

daslex,
вы не пробовали сделать так: форум - поиск - открывашка - и выбрать из 300 вариантов

daslex 27.01.2017 17:43

Dilettante_Pro,
Вы правы.

Там ни fast, ни пустые скобки нулевой задержки не дают. Как показано хорошо, но, если есть возможность задержку ту (в лучшем случае 400мс, насколько я понял) в 0мс свести, то хотелось бы такую возможность использовать.

На а нету, то нету, значит.

рони 27.01.2017 18:11

daslex,
меняйте класс если плавность не нужна

рони 27.01.2017 18:14

daslex,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 .spoiler_body {
  display: none;
}
.active{
  display: block;
}

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    $(".spoiler_head").click(function() {
        var a = $(this).next(".spoiler_body");
        $(".spoiler_body").not(a.toggleClass("active")).removeClass("active")
    })
});
  </script>
</head>

<body>
<div class="spoiler_head">Спойлер №1 (кликните для открытия/закрытия)</div>
<div class="spoiler_body">Текст спойлера 1</div>
<div class="spoiler_head">Спойлер №2 (кликните для открытия/закрытия)</div>
<div class="spoiler_body">Текст спойлера 2</div>
<div class="spoiler_head">Спойлер №3 (кликните для открытия/закрытия)</div>
<div class="spoiler_body">Текст спойлера 3</div>
<div class="spoiler_head">Спойлер №4 (кликните для открытия/закрытия)</div>
<div class="spoiler_body">Текст спойлера 4</div>
</body>
</html>

daslex 27.01.2017 18:17

рони,
Спасибо! То, что нужно.


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