function toggleClass (element, className) {
if (!element || !className) {
return
}
if (hasClass(element, className)) {
removeClass(element, className)
} else {
addClass(element, className)
}
}
function hasClass (element, className) {
className = className || ''
if (className.replace(/\s/g, '').length === 0) return false
return new RegExp(' ' + className + ' ').test(' ' + element.className + ' ')
}
function addClass (element, className) {
if (!hasClass(element, className)) {
element.className += ' ' + className
}
}
function removeClass (element, className) {
if (hasClass(element, className)) {
let newClass = ' ' + element.className.replace(/[\t\r\n]/g, '') + ' '
while (newClass.indexOf(' ' + className + ' ') >= 0) {
newClass = newClass.replace(' ' + className + ' ', ' ')
}
element.className = newClass.replace(/^\s+|\s+$/g, '')
}
}