20 lines
		
	
	
		
			563 B
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			20 lines
		
	
	
		
			563 B
		
	
	
	
		
			JavaScript
		
	
	
	
|  | /** | ||
|  |  * Polyfills for DOM API's | ||
|  |  */ | ||
|  | 
 | ||
|  | if (!Element.prototype.matches) { | ||
|  |     Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; | ||
|  | } | ||
|  | 
 | ||
|  | if (!Element.prototype.closest) { | ||
|  |     Element.prototype.closest = function (s) { | ||
|  |         var el = this; | ||
|  |         var ancestor = this; | ||
|  |         if (!document.documentElement.contains(el)) return null; | ||
|  |         do { | ||
|  |             if (ancestor.matches(s)) return ancestor; | ||
|  |             ancestor = ancestor.parentElement; | ||
|  |         } while (ancestor !== null); | ||
|  |         return null; | ||
|  |     }; | ||
|  | } |