|
30 | 30 | logError = noop; |
31 | 31 | } |
32 | 32 |
|
33 | | - var hasClass, addClass, removeClass; |
34 | | - if (document.body.classList) { |
35 | | - hasClass = function (el, className) { |
36 | | - return el && el.classList.contains(className); |
37 | | - } |
38 | | - addClass = function (el, className) { |
39 | | - el && el.classList.add(className); |
40 | | - } |
41 | | - removeClass = function (el, className) { |
42 | | - el && el.classList.remove(className); |
43 | | - } |
44 | | - } else { |
45 | | - hasClass = function (el, className) { |
46 | | - if (!el) return; |
47 | | - var reClassName = new RegExp('\\b' + className + '\\b'); |
48 | | - return reClassName.test(el.className); |
49 | | - } |
50 | | - addClass = function (el, className) { |
51 | | - if (!el) return; |
52 | | - var originalClassName = el.className; |
53 | | - var reClassName = new RegExp('\\b' + className + '\\b'); |
54 | | - if (!reClassName.test(originalClassName)) { |
55 | | - el.className = originalClassName + ' ' + className; |
56 | | - } |
57 | | - } |
58 | | - removeClass = function (el, className) { |
59 | | - if (!el) return; |
60 | | - var originalClassName = el.className; |
61 | | - var reClassName = new RegExp('^\\s*' + className + '\\s+|\\s+' + className + '\\b', 'g'); |
62 | | - var newClassName = originalClassName.replace(reClassName, ''); |
63 | | - if (originalClassName !== newClassName) { |
64 | | - el.className = newClassName; |
65 | | - } |
66 | | - } |
67 | | - } |
68 | | - |
69 | 33 | var hasStorage = false; |
70 | 34 | try { |
71 | 35 | if (typeof sessionStorage !== strUndef) hasStorage = true; |
|
127 | 91 | selector = selectorItemNone; |
128 | 92 | items = document.body.querySelectorAll(selector); |
129 | 93 | for (i = items.length - 1; i >= 0; i--) { |
130 | | - removeClass(items[i], classNone); |
| 94 | + items[i].classList.remove(classNone); |
131 | 95 | } |
132 | 96 | } else { |
133 | 97 | if (clear) { |
|
146 | 110 | var item = items[i]; |
147 | 111 | var name = item.querySelector('.name'); |
148 | 112 | if (name && name.textContent.toLowerCase().indexOf(filterText) < 0) { |
149 | | - addClass(item, classNone); |
| 113 | + item.classList.add(classNone); |
150 | 114 | } else { |
151 | | - removeClass(item, classNone); |
| 115 | + item.classList.remove(classNone); |
152 | 116 | } |
153 | 117 | } |
154 | 118 | } |
|
356 | 320 | } |
357 | 321 | } |
358 | 322 | } while (siblingLI !== startLI && ( |
359 | | - hasClass(siblingLI, classNone) || |
360 | | - hasClass(siblingLI, classHeader) |
| 323 | + siblingLI.classList.contains(classNone) || |
| 324 | + siblingLI.classList.contains(classHeader) |
361 | 325 | )); |
362 | 326 |
|
363 | 327 | if (siblingLI) { |
|
819 | 783 | if (optTarget === optActive) { |
820 | 784 | return; |
821 | 785 | } |
822 | | - removeClass(optActive, classActive); |
| 786 | + optActive.classList.remove(classActive); |
823 | 787 |
|
824 | 788 | optActive = optTarget; |
825 | | - addClass(optActive, classActive); |
| 789 | + optActive.classList.add(classActive); |
826 | 790 |
|
827 | 791 | if (clearInput) { |
828 | 792 | fileInput.value = ''; |
|
869 | 833 | } |
870 | 834 |
|
871 | 835 | if (typeof fileInput.webkitdirectory === strUndef) { |
872 | | - addClass(uploadType, classNone); |
| 836 | + uploadType.classList.add(classNone); |
873 | 837 | return; |
874 | 838 | } |
875 | | - optDirFile && removeClass(optDirFile, classHidden); |
876 | | - optInnerDirFile && removeClass(optInnerDirFile, classHidden); |
| 839 | + optDirFile && optDirFile.classList.remove(classHidden); |
| 840 | + optInnerDirFile && optInnerDirFile.classList.remove(classHidden); |
877 | 841 |
|
878 | 842 | if (optFile) { |
879 | 843 | optFile.addEventListener('click', onClickOptFile); |
|
972 | 936 | return uploadBatch(batches.shift()); // use "return" for tail call optimize |
973 | 937 | } else { |
974 | 938 | uploading = false; |
975 | | - removeClass(elUploadStatus, classUploading); |
| 939 | + elUploadStatus.classList.remove(classUploading); |
976 | 940 | } |
977 | 941 | } |
978 | 942 |
|
979 | 943 | function onFail(e) { |
980 | | - removeClass(elUploadStatus, classUploading); |
981 | | - addClass(elUploadStatus, classFailed); |
| 944 | + elUploadStatus.classList.remove(classUploading); |
| 945 | + elUploadStatus.classList.add(classFailed); |
982 | 946 | if (elFailedMessage) { |
983 | 947 | elFailedMessage.textContent = " - " + e.type; |
984 | 948 | } |
|
1010 | 974 | batches.push(files); |
1011 | 975 | } else { |
1012 | 976 | uploading = true; |
1013 | | - removeClass(elUploadStatus, classFailed); |
1014 | | - addClass(elUploadStatus, classUploading); |
| 977 | + elUploadStatus.classList.remove(classFailed); |
| 978 | + elUploadStatus.classList.add(classUploading); |
1015 | 979 | uploadBatch(files); |
1016 | 980 | } |
1017 | 981 | } |
|
1085 | 1049 | if (!isSelfDragging) { |
1086 | 1050 | e.stopPropagation(); |
1087 | 1051 | e.preventDefault(); |
1088 | | - addClass(e.currentTarget, classDragging); |
| 1052 | + e.currentTarget.classList.add(classDragging); |
1089 | 1053 | } |
1090 | 1054 | } |
1091 | 1055 |
|
1092 | 1056 | function onDragLeave(e) { |
1093 | 1057 | if (e.target === e.currentTarget) { |
1094 | | - removeClass(e.currentTarget, classDragging); |
| 1058 | + e.currentTarget.classList.remove(classDragging); |
1095 | 1059 | } |
1096 | 1060 | } |
1097 | 1061 |
|
1098 | 1062 | function onDrop(e) { |
1099 | 1063 | e.stopPropagation(); |
1100 | 1064 | e.preventDefault(); |
1101 | | - removeClass(e.currentTarget, classDragging); |
| 1065 | + e.currentTarget.classList.remove(classDragging); |
1102 | 1066 | fileInput.value = ''; |
1103 | 1067 |
|
1104 | 1068 | if (!e.dataTransfer || !e.dataTransfer.files || !e.dataTransfer.files.length) { |
|
1292 | 1256 | if (!itemList || !itemList.addEventListener) { |
1293 | 1257 | return; |
1294 | 1258 | } |
1295 | | - if (!hasClass(itemList, 'has-deletable')) return; |
| 1259 | + if (!itemList.classList.contains('has-deletable')) return; |
1296 | 1260 |
|
1297 | 1261 | itemList.addEventListener('submit', function (e) { |
1298 | 1262 | if (e.defaultPrevented) { |
|
0 commit comments