diff --git a/.changeset/tender-islands-wait.md b/.changeset/tender-islands-wait.md new file mode 100644 index 000000000..06047bade --- /dev/null +++ b/.changeset/tender-islands-wait.md @@ -0,0 +1,5 @@ +--- +'@lion/collapsible': patch +--- + +Moved binding to constructor to be be able to remove the event listener in disconnectedCallback diff --git a/packages/collapsible/src/LionCollapsible.js b/packages/collapsible/src/LionCollapsible.js index da520e244..8be97e18b 100644 --- a/packages/collapsible/src/LionCollapsible.js +++ b/packages/collapsible/src/LionCollapsible.js @@ -43,6 +43,7 @@ export class LionCollapsible extends LitElement { constructor() { super(); this.opened = false; + this.toggle = this.toggle.bind(this); } connectedCallback() { @@ -51,7 +52,7 @@ export class LionCollapsible extends LitElement { const uid = uuid(); if (this._invokerNode) { - this._invokerNode.addEventListener('click', this.toggle.bind(this)); + this._invokerNode.addEventListener('click', this.toggle); this._invokerNode.setAttribute('aria-expanded', `${this.opened}`); this._invokerNode.setAttribute('id', `collapsible-invoker-${uid}`); this._invokerNode.setAttribute('aria-controls', `collapsible-content-${uid}`);