|
10 | 10 | var Esc = 'Esc'; |
11 | 11 | var Space = ' '; |
12 | 12 |
|
| 13 | + var hasClass, addClass, removeClass; |
| 14 | + if (document.body.classList) { |
| 15 | + hasClass = function (el, className) { |
| 16 | + return el && el.classList.contains(className); |
| 17 | + } |
| 18 | + addClass = function (el, className) { |
| 19 | + el && el.classList.add(className); |
| 20 | + } |
| 21 | + removeClass = function (el, className) { |
| 22 | + el && el.classList.remove(className); |
| 23 | + } |
| 24 | + } else { |
| 25 | + hasClass = function (el, className) { |
| 26 | + if (!el) return; |
| 27 | + var reClassName = new RegExp('\\b' + className + '\\b'); |
| 28 | + return reClassName.test(el.className); |
| 29 | + } |
| 30 | + addClass = function (el, className) { |
| 31 | + if (!el) return; |
| 32 | + var originalClassName = el.className; |
| 33 | + var reClassName = new RegExp('\\b' + className + '\\b'); |
| 34 | + if (!reClassName.test(originalClassName)) { |
| 35 | + el.className = originalClassName + ' ' + className; |
| 36 | + } |
| 37 | + } |
| 38 | + removeClass = function (el, className) { |
| 39 | + if (!el) return; |
| 40 | + var originalClassName = el.className; |
| 41 | + var reClassName = new RegExp('^\\s*' + className + '\\s+|\\s+' + className + '\\b', 'g'); |
| 42 | + var newClassName = originalClassName.replace(reClassName, ''); |
| 43 | + if (originalClassName !== newClassName) { |
| 44 | + el.className = newClassName; |
| 45 | + } |
| 46 | + } |
| 47 | + } |
| 48 | + |
13 | 49 | function enableFilter() { |
14 | 50 | if (!document.querySelector) { |
15 | 51 | var filter = document.getElementById && document.getElementById('panel-filter'); |
|
24 | 60 | if (!filter) { |
25 | 61 | return; |
26 | 62 | } |
27 | | - if (!filter.classList || !filter.addEventListener) { |
| 63 | + if (!filter.addEventListener) { |
28 | 64 | filter.className += ' none'; |
29 | 65 | return; |
30 | 66 | } |
|
59 | 95 | selector = selectorItemNone; |
60 | 96 | items = document.body.querySelectorAll(selector); |
61 | 97 | for (i = items.length - 1; i >= 0; i--) { |
62 | | - items[i].classList.remove(classNone); |
| 98 | + removeClass(items[i], classNone); |
63 | 99 | } |
64 | 100 | } else { |
65 | 101 | if (clear) { |
|
78 | 114 | var item = items[i]; |
79 | 115 | var name = item.querySelector('.name'); |
80 | 116 | if (name && name.textContent.toLowerCase().indexOf(filterText) < 0) { |
81 | | - item.classList.add(classNone); |
| 117 | + addClass(item, classNone); |
82 | 118 | } else { |
83 | | - item.classList.remove(classNone); |
| 119 | + removeClass(item, classNone); |
84 | 120 | } |
85 | 121 | } |
86 | 122 | } |
|
143 | 179 | if ( |
144 | 180 | !document.querySelector || |
145 | 181 | !document.addEventListener || |
146 | | - !document.body.classList || |
147 | 182 | !document.body.parentElement |
148 | 183 | ) { |
149 | 184 | return; |
|
191 | 226 | } |
192 | 227 | } |
193 | 228 | } while (siblingLI !== startLI && ( |
194 | | - siblingLI.classList.contains(classNone) || |
195 | | - siblingLI.classList.contains(classHeader) |
| 229 | + hasClass(siblingLI, classNone) || |
| 230 | + hasClass(siblingLI, classHeader) |
196 | 231 | )); |
197 | 232 |
|
198 | 233 | if (siblingLI) { |
|
416 | 451 | } |
417 | 452 |
|
418 | 453 | function enhanceUpload() { |
419 | | - if (!document.querySelector || !document.addEventListener || !document.body.classList) { |
| 454 | + if (!document.querySelector || !document.addEventListener) { |
420 | 455 | return; |
421 | 456 | } |
422 | 457 |
|
|
447 | 482 | var optInnerDirFile = uploadType.querySelector('.' + innerDirFile); |
448 | 483 | var optActive = optFile; |
449 | 484 |
|
450 | | - function addClass(ele, className) { |
451 | | - ele && ele.classList.add(className); |
452 | | - } |
453 | | - |
454 | | - function removeClass(ele, className) { |
455 | | - ele && ele.classList.remove(className); |
456 | | - } |
457 | | - |
458 | 485 | var padStart = String.prototype.padStart ? function (sourceString, targetLength, padTemplate) { |
459 | 486 | return sourceString.padStart(targetLength, padTemplate); |
460 | 487 | } : function (sourceString, targetLength, padTemplate) { |
|
753 | 780 | } else { |
754 | 781 | uploading = false; |
755 | 782 | if (elUploadStatus) { |
756 | | - elUploadStatus.classList.remove(classUploading); |
| 783 | + removeClass(elUploadStatus, classUploading); |
757 | 784 | } |
758 | 785 | } |
759 | 786 | } |
|
779 | 806 | } else { |
780 | 807 | uploading = true; |
781 | 808 | if (elUploadStatus) { |
782 | | - elUploadStatus.classList.add(classUploading); |
| 809 | + addClass(elUploadStatus, classUploading); |
783 | 810 | } |
784 | 811 | uploadBatch(files); |
785 | 812 | } |
|
1058 | 1085 | if (!itemList || !itemList.addEventListener) { |
1059 | 1086 | return; |
1060 | 1087 | } |
1061 | | - if (itemList.classList) { |
1062 | | - if (!itemList.classList.contains('has-deletable')) { |
1063 | | - return; |
1064 | | - } |
1065 | | - } else if (itemList.className.indexOf('has-deletable') < 0) { |
1066 | | - return; |
1067 | | - } |
| 1088 | + if (!hasClass(itemList, 'has-deletable')) return; |
1068 | 1089 |
|
1069 | 1090 | itemList.addEventListener('submit', function (e) { |
1070 | 1091 | if (e.defaultPrevented) { |
|
0 commit comments