Я пытаюсь показать / скрыть разделы, используя триггеры, основанные на классах.Таким образом, легко вызвать класс триггера для любого элемента, и он будет сдвигать следующий класс элемента show / hide в DOM.
Первая часть работает нормально.Теперь я добавляю триггер, чтобы развернуть / свернуть ВСЕ элементы.Проблема в том, что я не могу понять, как синхронизировать их состояния.
Например: я нажимаю на 3 из 8 элементов, чтобы они открылись и стали видимыми, остальные 5 все еще закрыты ... Теперь, когдаЯ щелкаю своим триггером «Развернуть / Свернуть все», используя slideToggle, который просто переключает их состояния, и в результате я получаю 3 закрытых и 5 открытых.
Как мне синхронизировать их состояния независимо от их текущего состояния?
Я пытался выяснить условия, чтобы проверить, есть ли в триггере класс открытия или закрытия, а затем переключить следующий элемент, но пока я только запутался.
Вот мой код:
jQuery( document ).ready( function( $ ) {
// The element to hide/reveal
$( '.bodhi-hide-reveal' ).hide();
// The trigger to hide/reveal
$( '.bodhi-reveal-trigger' ).click( function( e ) {
e.preventDefault();
// Target only the next element to hide/reveal and toggle it
$( this ).next( '.bodhi-hide-reveal' ).slideToggle();
// Toggle the trigger class
$( '.bodhi-reveal-trigger' ).toggleClass( 'opened closed' );
});
// Expand/collapse all button
$( '.expand-collapse-all' ).click( function( e ) {
e.preventDefault();
// Find all hide/reveal elements and toggle them all together
$( 'body' ).find( '.bodhi-hide-reveal' ).slideToggle();
});
});