Skip to content

Commit 890c6f7

Browse files
committed
Remove event listener when the component is destroyed
1 parent 5dfb644 commit 890c6f7

File tree

2 files changed

+25
-21
lines changed

2 files changed

+25
-21
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue-pure-lightbox",
3-
"version": "2.1.3",
3+
"version": "2.1.4",
44
"description": "Very lightweight, JavaScript-only, lightbox plugin for Vue.js",
55
"main": "dist-module/main.js",
66
"scripts": {

src/Components/Lightbox.vue

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -48,26 +48,10 @@
4848
}
4949
},
5050
mounted() {
51-
window.addEventListener('keydown', (e) => {
52-
if (this.visible) {
53-
switch (e.key) {
54-
case 'ArrowRight':
55-
this.next()
56-
break
57-
case 'ArrowLeft':
58-
this.prev()
59-
break
60-
case 'ArrowDown':
61-
case 'ArrowUp':
62-
case ' ':
63-
e.preventDefault()
64-
break
65-
case 'Escape':
66-
this.hide()
67-
break
68-
}
69-
}
70-
})
51+
window.addEventListener('keydown', this.eventListener)
52+
},
53+
destroyed() {
54+
window.removeEventListener('keydown', this.eventListener)
7155
},
7256
methods: {
7357
show() {
@@ -94,6 +78,26 @@
9478
this.index += 1
9579
}
9680
},
81+
eventListener(e) {
82+
if (this.visible) {
83+
switch (e.key) {
84+
case 'ArrowRight':
85+
this.next()
86+
break
87+
case 'ArrowLeft':
88+
this.prev()
89+
break
90+
case 'ArrowDown':
91+
case 'ArrowUp':
92+
case ' ':
93+
e.preventDefault()
94+
break
95+
case 'Escape':
96+
this.hide()
97+
break
98+
}
99+
}
100+
},
97101
},
98102
}
99103
</script>

0 commit comments

Comments
 (0)