Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » jQuery » Как заставить сполер закрываться при вызове другого?

Как заставить сполер закрываться при вызове другого?


     20.02.2014    Все вопросы » jQuery    4511

вопрос
Здравствуйте!
Не могу понять, как заставить спойлер закрываться при вызове другого спойлера.Что нужно дописать в код чтобы эта функция срабатывала?
Вот код:

$(document).ready(function(){
$(".spoler-menu").hide();
$(".sp_menu").show();
$('.sp_menu').click(function(){
$(".spoler-menu").slideToggle();
});
});

HTML:

<div class="sp_menu">Кнопка вызова</div>
<div class="spoler-menu">
     Текст спойлера
   </div>

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

Ответил: D0Gmatist


<div onclick="sPo('1')">!!!Кнопка вызова</div>
<div class="spoler spoler-menu1">
     Текст спойлера
</div>

<div onclick="sPo('2')">!!!Кнопка вызова</div>
<div class="spoler spoler-menu2">
     Текст спойлера
</div>


function sPo( id ){

  var item = $(".spoler-menu" + id);

  if (item.css("display") == "none") {
    $(".spoler").hide('slow'); // slow , normal , fast
    $(".spoler-menu"+ id).slideToggle('slow'); // slow , normal , fast
 } else {
    $(".spoler").hide('slow'); // slow , normal , fast
  }

};

14 комментариев

D0Gmatist
Юзер

D0Gmatist - 20 февраля 2014 14:26 -

А есть возможность уникальности class или id

Если да то http://jsfiddle.net/D0Gmatist/GMJst/

D0Gmatist
Юзер

D0Gmatist - 20 февраля 2014 14:37 -


monach
Юзер

monach - 20 февраля 2014 14:52 -

Все чудесно работает но теперь не сворачивает при повторном клике.какую функцию прописать чтобы сворачивался блок при повторном клике? http://jsfiddle.net/D0Gmatist/vWJTL/

D0Gmatist
Юзер

D0Gmatist - 20 февраля 2014 15:33 -


monach
Юзер

monach - 20 февраля 2014 15:35 -

Спасибо большое.Надо учить js срочно.

D0Gmatist
Юзер

D0Gmatist - 20 февраля 2014 15:36 -

А так же если надо подправить скорость открытия закрытия спойлеров
function sPo( id ){

  var item = $(".spoler-menu" + id);

  if (item.css("display") == "none") {
    $(".spoler").hide('slow'); // slow , normal , fast
    $(".spoler-menu"+ id).slideToggle('slow'); // slow , normal , fast
 } else {
    $(".spoler").hide('slow'); // slow , normal , fast
  }

};

monach
Юзер

monach - 20 февраля 2014 15:55 -

Класс!Спасибо.

Andrei
Юзер

Andrei - 15 марта 2017 22:09 -

Просто диву даюсь... Статье около 3х лет! А он еще кому-то нужен. (Имею ввиду себя).
Автор, большая просьба, отзовитесь.
Именно Ваш спойлер мне подошел на этот раз. Немного прописал стили и все работает. Хочется довести до идеала. Хотелось бы, чтобы после раскрытия спойлера заголовок менялся. Например вместо раскрыть - скрыть. Думаю смысл поняли.В js не силен. Умею только копировать и вставлять куда нужно. Обращаюсь к Вам как к спецу. Помогите пожалуйста.

vitnet
PHP-developer

vitnet - 15 марта 2017 22:34 -


Andrei
Юзер

Andrei - 15 марта 2017 23:15 -

Теперь будет просто не по-людски, если я уйду молча.
Спасибо Вам большое!
А я думал уже как нибудь из другого кода (стороннего) к вашему прилепить, чтоб все заработало.Естественно у меня не получилось бы. Вывод я уже сделал после того, как посмотрел правильный.
Наткнулся на Ваш сайт, скопировал коды, внедрил. Потом решил написать вопрос хозяину скрипта. Еле нашел вновь ваш сайт, так как забыл запрос, который вбивал в поисковик... Ну да ладно.
Спасибо Вам еще раз!

Andrei
Юзер

Andrei - 16 марта 2017 07:34 -

Виктор, здравствуйте. Еще вопросик можно? Ночью не стал писать.
Спойлер работает! Слава богу!
Правда вне зависимости от того какие заголовки я прописал в спойлерах, после раскрытия любого на странице, они ВСЕ меняются на те, которые указаны в js-коде.
Можно заголовок сделать индивидуальным для каждого спойлера?

Decart
Юзер

Decart - 10 мая 2023 20:22 -

Подскажите пожалуйста, что изменить в коде, чтобы все спойлеры по умолчанию были закрыты при загрузке страницы?

TeraMoune
Эксперт

TeraMoune - 10 мая 2023 23:40 -

Добавь стиль display:none спойлерам.

Decart
Юзер

Decart - 11 мая 2023 16:19 -

TeraMoune,
Точно!
Я думал как-то в скрипте нужно править
Спасибо мил человек.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх