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 6b541ed150b3..3d05e8acda6d 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 b2a2e80ebc04..5250fea0f56e 100644 --- a/js/src/modal.js +++ b/js/src/modal.js @@ -190,7 +190,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 4fea1c9646e3..63c7516a1678 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) {