Skip to content

Commit 6c47c1c

Browse files
Allow unfolding of toggle/accordeon item by changing window.location.hash
1 parent aaeb87d commit 6c47c1c

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

src/frontend/blocks/accordion/index.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,30 @@
55
(function ($) {
66
$(document).ready(function (e) {
77

8+
var getwid_window_hook = false;
9+
810
//Init block loaded via AJAX
911
$(document.body).on('post-load', function (e) {
1012
getwid_init_accordions();
1113
});
1214

1315
var getwid_init_accordions = () => {
16+
if( getwid_window_hook === false && $('.wp-block-getwid-accordion').length > 0 ) {
17+
getwid_window_hook = true;
18+
19+
$(window).on('hashchange', function (e) {
20+
if (window.location.hash) {
21+
$('.wp-block-getwid-accordion.getwid-init .wp-block-getwid-accordion__header-wrapper' + window.location.hash).each(function (index, row) {
22+
var $row = $(row);
23+
24+
if ( ! $row.hasClass('ui-accordion-header-active') ) {
25+
$row.trigger('click');
26+
}
27+
});
28+
}
29+
});
30+
}
31+
1432
var getwid_accordions = $('.wp-block-getwid-accordion:not(.getwid-init)'),
1533
getwid_accordion_active = 0;
1634

src/frontend/blocks/toggle/index.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,30 @@
55
(function ($) {
66
$(document).ready(function (e) {
77

8+
var getwid_window_hook = false;
9+
810
//Init block loaded via AJAX
911
$(document.body).on('post-load', function (e) {
1012
getwid_init_toggles();
1113
});
1214

1315
var getwid_init_toggles = () => {
16+
if( getwid_window_hook === false && $('.wp-block-getwid-toggle').length > 0 ) {
17+
getwid_window_hook = true;
18+
19+
$(window).on('hashchange', function (e) {
20+
if (window.location.hash) {
21+
$('.wp-block-getwid-toggle.getwid-init .wp-block-getwid-toggle__row' + window.location.hash).each(function (index, row) {
22+
var $row = $(row);
23+
24+
if ( ! $row.hasClass('is-active') ) {
25+
$row.find('.wp-block-getwid-toggle__header-wrapper').trigger('click');
26+
}
27+
});
28+
}
29+
});
30+
}
31+
1432
var getwid_toggles = $('.wp-block-getwid-toggle:not(.getwid-init)');
1533

1634
getwid_toggles.each(function (index, toggle) {
@@ -55,6 +73,10 @@
5573
row.addClass('is-active');
5674
}
5775
});
76+
77+
if (window.location.hash) {
78+
$(window).trigger('hashchange');
79+
}
5880
});
5981
};
6082

0 commit comments

Comments
 (0)