执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/**
 * @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;