Zum Inhalt springen
(function() {
'use strict';
var parentSelector = '.menu-item.wpml-ls-current-language.menu-item-has-children';
function toggleSubmenu(link, forceClose) {
var isExpanded = link.getAttribute('aria-expanded') === 'true';
if (forceClose || isExpanded) {
link.setAttribute('aria-expanded', 'false');
} else {
link.setAttribute('aria-expanded', 'true');
}
}
function handleKeydown(e) {
var key = e.key || e.keyCode;
if (key === 'Enter' || key === ' ' || key === 13 || key === 32) {
e.preventDefault();
toggleSubmenu(this);
} else if (key === 'Escape' || key === 'Esc' || key === 27) {
if (this.getAttribute('aria-expanded') === 'true') {
e.preventDefault();
toggleSubmenu(this, true);
}
}
}
function handleBlur(e) {
var link = this;
var parent = link.closest(parentSelector);
if (!parent) return;
setTimeout(function() {
if (!parent.contains(document.activeElement)) {
toggleSubmenu(link, true);
}
}, 100);
}
function init() {
var parents = document.querySelectorAll(parentSelector);
for (var i = 0; i < parents.length; i++) {
var link = parents[i].querySelector('a[aria-expanded]');
if (link) {
link.addEventListener('keydown', handleKeydown);
link.addEventListener('blur', handleBlur);
}
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
})();