Возникли проблемы с аккордеоном с JQuery

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

Вот код:

    $(function(){
  var heading = $('h1');

  heading.on('click', function(event){
    var target = $(event.target);
    $('div.content').addClass('hidden');
  target.next('div.content').removeClass('hidden');

   })
});

Вместо того, чтобы изменять классы самостоятельно, пробовали ли вы запускать щелчок по вкладке, чтобы jquery ui обрабатывал сворачивание за вас?

Taplar 17.04.2018 22:13

@Taplar, как мне это сделать? .курок()? .нет()?

Joseph Cornelio 17.04.2018 22:27

Можете ли вы поделиться своим html-кодом.

xuhaib 17.04.2018 22:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
45
1

Ответы 1

Убедитесь, что ваш код HTML, как показано ниже,

<h1>Title 1</h1>
<div class = "content hidden">
    Title 1 Content
</div>
<h1>Title 2</h1>
<div class = "content hidden">
    Title 2 Content
</div>
<h1>Title 3</h1>
<div class = "content hidden">
    Title 3 Content
</div>

добавить этот jquery

$(function(){
    // hiding rest of the content block (optional), its already hidden in html code by css class
    $('div.content').addClass('hidden');  
    $('h1').on('click', function(){
        if ($(this).next('div.content').hasClass('hidden')){
            $(this).next('div.content').removeClass('hidden').addClass('visible');
        }else{
            $(this).next('div.content').removeClass('visible').addClass('hidden');
        }
    });
});

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

Joseph Cornelio 18.04.2018 04:42

@JosephCornelio, я обновил свой ответ, проверьте его. я надеюсь, что это сработает для вас :)

Anfath Hifans 18.04.2018 07:11

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

Joseph Cornelio 18.04.2018 20:02

Он работает, но теперь, когда открывается одна вкладка, она не закрывает остальные или другие вкладки не рушатся. @AnfathHifans

Joseph Cornelio 18.04.2018 20:41

Другие вопросы по теме