diff --git a/src/components/autocomplete/AutoComplete.vue b/src/components/autocomplete/AutoComplete.vue index 8c98e2a27..136718e90 100755 --- a/src/components/autocomplete/AutoComplete.vue +++ b/src/components/autocomplete/AutoComplete.vue @@ -107,8 +107,11 @@ export default { beforeUnmount() { this.restoreAppend(); this.unbindOutsideClickListener(); - this.unbindScrollListener(); - this.scrollHandler = null; + + if (this.scrollHandler) { + this.scrollHandler.destroy(); + this.scrollHandler = null; + } this.overlay = null; }, methods: { @@ -143,8 +146,7 @@ export default { }, bindScrollListener() { if (!this.scrollHandler) { - const { id } = this.$attrs; - this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, id, () => { + this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => { if (this.overlayVisible) { this.hideOverlay(); } diff --git a/src/components/calendar/Calendar.vue b/src/components/calendar/Calendar.vue index c4fd7aa45..404970aee 100755 --- a/src/components/calendar/Calendar.vue +++ b/src/components/calendar/Calendar.vue @@ -342,8 +342,11 @@ export default { this.restoreAppend(); this.unbindOutsideClickListener(); - this.unbindScrollListener(); - this.scrollHandler = null; + + if (this.scrollHandler) { + this.scrollHandler.destroy(); + this.scrollHandler = null; + } this.overlay = null; }, data() { @@ -646,8 +649,7 @@ export default { }, bindScrollListener() { if (!this.scrollHandler) { - const { id } = this.$attrs; - this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, id, () => { + this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => { if (this.overlayVisible) { this.overlayVisible = false; } diff --git a/src/components/colorpicker/ColorPicker.vue b/src/components/colorpicker/ColorPicker.vue index 1b5c26e59..e87d52e69 100755 --- a/src/components/colorpicker/ColorPicker.vue +++ b/src/components/colorpicker/ColorPicker.vue @@ -84,8 +84,11 @@ export default { this.unbindOutsideClickListener(); this.unbindDocumentMouseMoveListener(); this.unbindDocumentMouseUpListener(); - this.unbindScrollListener(); - this.scrollHandler = null; + + if (this.scrollHandler) { + this.scrollHandler.destroy(); + this.scrollHandler = null; + } this.clearRefs(); }, mounted() { @@ -410,8 +413,7 @@ export default { }, bindScrollListener() { if (!this.scrollHandler) { - const { id } = this.$attrs; - this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, id, () => { + this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => { if (this.overlayVisible) { this.overlayVisible = false; } diff --git a/src/components/dropdown/Dropdown.vue b/src/components/dropdown/Dropdown.vue index d6244d177..295cd499b 100755 --- a/src/components/dropdown/Dropdown.vue +++ b/src/components/dropdown/Dropdown.vue @@ -93,8 +93,11 @@ export default { beforeUnmount() { this.restoreAppend(); this.unbindOutsideClickListener(); - this.unbindScrollListener(); - this.scrollHandler = null; + + if (this.scrollHandler) { + this.scrollHandler.destroy(); + this.scrollHandler = null; + } this.overlay = null; }, updated() { @@ -355,8 +358,7 @@ export default { }, bindScrollListener() { if (!this.scrollHandler) { - const { id } = this.$attrs; - this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, id, () => { + this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => { if (this.overlayVisible) { this.hide(); } diff --git a/src/components/multiselect/MultiSelect.vue b/src/components/multiselect/MultiSelect.vue index fc7a9fc2b..4ea9d118f 100755 --- a/src/components/multiselect/MultiSelect.vue +++ b/src/components/multiselect/MultiSelect.vue @@ -103,8 +103,11 @@ export default { beforeUnmount() { this.restoreAppend(); this.unbindOutsideClickListener(); - this.unbindScrollListener(); - this.scrollHandler = null; + + if (this.scrollHandler) { + this.scrollHandler.destroy(); + this.scrollHandler = null; + } this.overlay = null; }, updated() { @@ -315,8 +318,7 @@ export default { }, bindScrollListener() { if (!this.scrollHandler) { - const { id } = this.$attrs; - this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, id, () => { + this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => { if (this.overlayVisible) { this.hide(); } diff --git a/src/components/overlaypanel/OverlayPanel.d.ts b/src/components/overlaypanel/OverlayPanel.d.ts index 7c90631f1..0155c42c1 100755 --- a/src/components/overlaypanel/OverlayPanel.d.ts +++ b/src/components/overlaypanel/OverlayPanel.d.ts @@ -1,7 +1,6 @@ import Vue, { VNode } from 'vue'; export declare class OverlayPanel extends Vue { - id?: string; ismissable?: boolean; showCloseIcon?: boolean; appendTo?: string; diff --git a/src/components/overlaypanel/OverlayPanel.vue b/src/components/overlaypanel/OverlayPanel.vue index acf7981f8..0ca795510 100755 --- a/src/components/overlaypanel/OverlayPanel.vue +++ b/src/components/overlaypanel/OverlayPanel.vue @@ -1,6 +1,6 @@