diff --git a/js/src/base-component.js b/js/src/base-component.js index 14e13a0eb71b..77d54faadc73 100644 --- a/js/src/base-component.js +++ b/js/src/base-component.js @@ -6,6 +6,7 @@ */ import Data from './dom/data' +import EventHandler from './dom/event-handler' /** * ------------------------------------------------------------------------ @@ -29,6 +30,7 @@ class BaseComponent { dispose() { Data.remove(this._element, this.constructor.DATA_KEY) + EventHandler.off(this._element, `.${this.constructor.DATA_KEY}`) this._element = null } diff --git a/js/src/carousel.js b/js/src/carousel.js index e336abb1eda2..ebb0b7b20152 100644 --- a/js/src/carousel.js +++ b/js/src/carousel.js @@ -216,8 +216,6 @@ class Carousel extends BaseComponent { } dispose() { - EventHandler.off(this._element, EVENT_KEY) - this._items = null this._config = null this._interval = null diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 7d5421a56d93..b126d3196a93 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -237,7 +237,6 @@ class Dropdown extends BaseComponent { } dispose() { - EventHandler.off(this._element, EVENT_KEY) this._menu = null if (this._popper) { diff --git a/js/src/modal.js b/js/src/modal.js index dea90ec0a758..c6d67ac9513e 100644 --- a/js/src/modal.js +++ b/js/src/modal.js @@ -187,7 +187,7 @@ class Modal extends BaseComponent { } dispose() { - [window, this._element, this._dialog] + [window, this._dialog] .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY)) super.dispose() diff --git a/js/src/toast.js b/js/src/toast.js index 01b994e28548..5d762b29da06 100644 --- a/js/src/toast.js +++ b/js/src/toast.js @@ -156,8 +156,6 @@ class Toast extends BaseComponent { this._element.classList.remove(CLASS_NAME_SHOW) } - EventHandler.off(this._element, EVENT_CLICK_DISMISS) - super.dispose() this._config = null } diff --git a/js/src/tooltip.js b/js/src/tooltip.js index a66e1ad41e54..2bfa42fc70e5 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -215,7 +215,6 @@ class Tooltip extends BaseComponent { dispose() { clearTimeout(this._timeout) - EventHandler.off(this._element, this.constructor.EVENT_KEY) EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler) if (this.tip && this.tip.parentNode) {