summaryrefslogtreecommitdiffstats
path: root/core/src/Polyfill/closest.js
blob: 1c6086461279cda409bedc71a0369c5f47188a21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill

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

		do {
			if (el.matches(s)) return el
			el = el.parentElement || el.parentNode
		} while (el !== null && el.nodeType === 1)
		return null
	}
}