Skip to content

Commit c79f8d1

Browse files
committed
fixed unbinding event listeners
1 parent ec7764b commit c79f8d1

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue-a11y-click",
3-
"version": "0.0.3",
3+
"version": "0.0.4",
44
"description": "Vue directive for handling click events on screen readers",
55
"main": "src/index.js",
66
"repository": {

src/index.js

+15-9
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,35 @@
11
const a11yClick = {
22
install(Vue) {
3+
let handleKeyUp, handleKeyDown;
4+
35
Vue.directive("a11y-click", {
46
bind(el) {
57
let pressed = false;
68

7-
el.tabIndex = 0;
8-
el.setAttribute("role", "button");
9-
el.setAttribute("aria-pressed", "false");
10-
11-
el.addEventListener("keydown", () => {
9+
handleKeyDown = () => {
1210
// enter keycode = 13
1311
if (event.keyCode !== 13 || pressed) return;
1412
pressed = true;
1513
el.setAttribute("aria-pressed", "true");
1614
el.click();
17-
});
15+
};
1816

19-
el.addEventListener("keyup", () => {
17+
handleKeyUp = () => {
2018
if (event.keyCode !== 13) return;
2119
pressed = false;
2220
el.setAttribute("aria-pressed", "false");
23-
});
21+
};
22+
23+
el.tabIndex = 0;
24+
el.setAttribute("role", "button");
25+
el.setAttribute("aria-pressed", "false");
26+
27+
el.addEventListener("keydown", handleKeyDown);
28+
el.addEventListener("keyup", handleKeyUp);
2429
},
2530
unbind(el) {
26-
el.removeEventListener("keyup");
31+
el.removeEventListener("keyup", handleKeyUp);
32+
el.removeEventListener("keydown", handleKeyDown);
2733
}
2834
});
2935
}

0 commit comments

Comments
 (0)