ru-se.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

wp-polyfill-element-closest.js (895B)


      1 // element-closest | CC0-1.0 | github.com/jonathantneal/closest
      2 
      3 (function (ElementProto) {
      4 	if (typeof ElementProto.matches !== 'function') {
      5 		ElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {
      6 			var element = this;
      7 			var elements = (element.document || element.ownerDocument).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);