Мой аккордеон работает нормально, но я пытаюсь нажать на уже открытую вкладку, и она не закрывается, а также я хочу, чтобы мой аккордеон закрывался при открытии одной вкладки, остальные закрываются.
Вот код:
$(function(){
var heading = $('h1');
heading.on('click', function(event){
var target = $(event.target);
$('div.content').addClass('hidden');
target.next('div.content').removeClass('hidden');
})
});
@Taplar, как мне это сделать? .курок()? .нет()?
Можете ли вы поделиться своим html-кодом.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Убедитесь, что ваш код 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');
}
});
});
Привет, спасибо за ввод, но я забыл упомянуть, что хочу, чтобы мой аккордеон закрывался при открытии одной вкладки, чтобы человек открывал вкладку, а затем решал открыть другую, как только они открыли первую, закрываются.
@JosephCornelio, я обновил свой ответ, проверьте его. я надеюсь, что это сработает для вас :)
Большое вам спасибо, но как бы я изменил код, чтобы каждая вкладка была сворачиваемой, или когда человек нажимает на уже открытую вкладку, она может закрываться. @AnfathHifans
Он работает, но теперь, когда открывается одна вкладка, она не закрывает остальные или другие вкладки не рушатся. @AnfathHifans
Вместо того, чтобы изменять классы самостоятельно, пробовали ли вы запускать щелчок по вкладке, чтобы jquery ui обрабатывал сворачивание за вас?