Make utils.toggleClass() compatible with Element.classList.toggle (rename toggle argument to 'force' and make it optional)

This commit is contained in:
Albin Larsson
2018-05-09 22:08:09 +02:00
parent 28826f6402
commit 4db6bf7a2e

View File

@ -390,14 +390,16 @@ const utils = {
} }
}, },
// Toggle class on an element // Mirror Element.classList.toggle, with IE compatibility for "force" argument
toggleClass(element, className, toggle) { toggleClass(element, className, force) {
if (utils.is.element(element)) { if (utils.is.element(element)) {
const contains = element.classList.contains(className); let method = 'toggle';
if (typeof force !== 'undefined') {
method = force ? 'add' : 'remove';
}
element.classList[toggle ? 'add' : 'remove'](className); element.classList[method](className);
return element.classList.contains(className);
return (toggle && !contains) || (!toggle && contains);
} }
return null; return null;