LEFT | RIGHT |
(no file at all) | |
| 1 /*! @source https://github.com/jonathantneal/closest/blob/master/element-closest
.js */ |
| 2 |
| 3 (function (ElementProto) { |
| 4 if (typeof ElementProto.matches !== 'function') { |
| 5 ElementProto.matches = ElementProto.msMatchesSelector || Element
Proto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function match
es(selector) { |
| 6 var element = this; |
| 7 var elements = (element.document || element.ownerDocumen
t).querySelectorAll(selector); |
| 8 var index = 0; |
| 9 |
| 10 while (elements[index] && elements[index] !== element) { |
| 11 ++index; |
| 12 } |
| 13 |
| 14 return Boolean(elements[index]); |
| 15 }; |
| 16 } |
| 17 |
| 18 if (typeof ElementProto.closest !== 'function') { |
| 19 ElementProto.closest = function closest(selector) { |
| 20 var element = this; |
| 21 |
| 22 while (element && element.nodeType === 1) { |
| 23 if (element.matches(selector)) { |
| 24 return element; |
| 25 } |
| 26 |
| 27 element = element.parentNode; |
| 28 } |
| 29 |
| 30 return null; |
| 31 }; |
| 32 } |
| 33 })(window.Element.prototype); |
LEFT | RIGHT |