diff --git a/src/core/binding.ts b/src/core/binding.ts index 33958667..25330a9e 100644 --- a/src/core/binding.ts +++ b/src/core/binding.ts @@ -96,13 +96,17 @@ export class Binding { if (this.element === eventTarget) { return true - } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) { + } else if (eventTarget instanceof Element && this.containsElement(eventTarget)) { return this.scope.containsElement(eventTarget) } else { return this.scope.containsElement(this.action.element) } } + private containsElement(element: Element): boolean { + return HTMLElement.prototype.contains.call(this.element, element) + } + private get controller(): Controller { return this.context.controller } diff --git a/src/mutation-observers/element_observer.ts b/src/mutation-observers/element_observer.ts index 544de6e4..a23e6581 100644 --- a/src/mutation-observers/element_observer.ts +++ b/src/mutation-observers/element_observer.ts @@ -146,7 +146,7 @@ export class ElementObserver { if (element.isConnected != this.element.isConnected) { return false } else { - return this.element.contains(element) + return this.containsElement(element) } } @@ -171,4 +171,8 @@ export class ElementObserver { } } } + + private containsElement(element: Element): boolean { + return HTMLElement.prototype.contains.call(this.element, element) + } }