Skip to content

Instantly share code, notes, and snippets.

@riq363
Created April 17, 2019 08:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save riq363/aaef53c8545908bdd4647104ae5d4b58 to your computer and use it in GitHub Desktop.
Save riq363/aaef53c8545908bdd4647104ae5d4b58 to your computer and use it in GitHub Desktop.
Function to initialize buttonDropdowns in Ecwid CSS Framework
function buttonDropdowns() {
btnDropdowns = document.querySelectorAll(".btn-dropdown");
for (var i = 0; i < btnDropdowns.length; i++) {
if (btnDropdowns[i].addEventListener) {
btnDropdowns[i].addEventListener("click", function(e) {
showDropdown(this);
e.stopPropagation();
});
} else {
btnDropdowns[i].attachEvent("onclick", function(e) {
showDropdown(this)
e.stopPropagation();
});
}
}
function showDropdown(obj) {
isActive = obj.parentNode.classList.contains('opened');
closeDropdowns();
if (!isActive) {
obj.parentNode.classList.add('opened');
isActive = true;
}
}
function closeDropdowns() {
for (var i = 0; i < btnDropdowns.length; i++) {
if (btnDropdowns[i].parentNode.classList.contains('opened')) {
btnDropdowns[i].parentNode.classList.remove('opened');
}
}
}
if (document.addEventListener) {
document.addEventListener("click", function(e) {
if (!e.target.classList.contains('btn-dropdown')) {
closeDropdowns();
}
});
} else {
document.attachEvent("click", function(e) {
if (!e.target.classList.contains('btn-dropdown')) {
closeDropdowns();
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment