PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.7
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.7
2.0.13 2.0.12 2.0.11 2.0.10 2.0.9 trunk 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8
blockenberg / blocks / faq-accordion / frontend.js

frontend.js in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.7, at blocks/faq-accordion/frontend.js

44 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function () {
2 'use strict';
3
4 function initAccordion(wrap) {
5 var allowMultiple = wrap.dataset.allowMultiple === '1';
6 var items = Array.from(wrap.querySelectorAll('[data-faq-item]'));
7
8 items.forEach(function (item) {
9 var btn = item.querySelector('.bkbg-fa-question');
10 var answer = item.querySelector('.bkbg-fa-answer');
11 if (!btn || !answer) return;
12
13 btn.addEventListener('click', function () {
14 var isOpen = item.classList.contains('bkbg-fa-item--open');
15
16 // Close all if single-open mode
17 if (!allowMultiple) {
18 items.forEach(function (other) {
19 if (other !== item) {
20 other.classList.remove('bkbg-fa-item--open');
21 var ob = other.querySelector('.bkbg-fa-question');
22 var oa = other.querySelector('.bkbg-fa-answer');
23 if (ob) ob.setAttribute('aria-expanded', 'false');
24 if (oa) oa.hidden = true;
25 }
26 });
27 }
28
29 if (isOpen) {
30 item.classList.remove('bkbg-fa-item--open');
31 btn.setAttribute('aria-expanded', 'false');
32 answer.hidden = true;
33 } else {
34 item.classList.add('bkbg-fa-item--open');
35 btn.setAttribute('aria-expanded', 'true');
36 answer.hidden = false;
37 }
38 });
39 });
40 }
41
42 document.querySelectorAll('.bkbg-fa-wrap').forEach(initAccordion);
43 })();
44