UNPKG

tui-code-snippet

Version:
47 lines (36 loc) 999 B
/** * @fileoverview Toggle css class * @author NHN FE Development Lab <dl_javascript@nhn.com> */ 'use strict'; var forEach = require('../collection/forEach'); var inArray = require('../array/inArray'); var getClass = require('./getClass'); var setClassName = require('./_setClassName'); /** * Toggle css class * @param {(HTMLElement|SVGElement)} element - target element * @param {...string} cssClass - css classes to toggle * @memberof module:domUtil */ function toggleClass(element) { var cssClass = Array.prototype.slice.call(arguments, 1); var newClass; if (element.classList) { forEach(cssClass, function(name) { element.classList.toggle(name); }); return; } newClass = getClass(element).split(/\s+/); forEach(cssClass, function(name) { var idx = inArray(name, newClass); if (idx > -1) { newClass.splice(idx, 1); } else { newClass.push(name); } }); setClassName(element, newClass); } module.exports = toggleClass;