回答編集履歴
1
className 処理の簡略化
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
`
|
1
|
+
`arguments` を `Array#slice` すれば、第二引数以降の可変長引数を処理できると思います。
|
2
2
|
|
3
|
-
(
|
3
|
+
(2015/08/04 21:19 className 処理を簡略化できた為、修正しました。)
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -16,41 +16,17 @@
|
|
16
16
|
|
17
17
|
var classList = element.classList,
|
18
18
|
|
19
|
-
classTokenList = Array.prototype.slice.call(arguments, 1)
|
19
|
+
classTokenList = Array.prototype.slice.call(arguments, 1);
|
20
|
-
|
21
|
-
currentClassName, i;
|
22
20
|
|
23
21
|
|
24
22
|
|
25
|
-
if (classList && classList.add) {
|
23
|
+
if (classList && typeof classList.add === 'function') {
|
26
24
|
|
27
25
|
classList.add.apply(classList, classTokenList);
|
28
26
|
|
29
27
|
} else {
|
30
28
|
|
31
|
-
currentClassName = element.className;
|
32
|
-
|
33
|
-
i = classTokenList.length;
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
while (i--) {
|
38
|
-
|
39
|
-
|
29
|
+
element.className += ' ' + classTokenList.join(' ');
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
if ((' ' + currentClassName + ' ').indexOf(className + ' ') === -1) {
|
44
|
-
|
45
|
-
currentClassName += className;
|
46
|
-
|
47
|
-
}
|
48
|
-
|
49
|
-
}
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
element.className = currentClassName;
|
54
30
|
|
55
31
|
}
|
56
32
|
|