Skip to content

Commit 72161f4

Browse files
committed
fix(compat): prefer {add,remove}EventListener over legacy fns
1 parent 0090d61 commit 72161f4

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

lib/utils/domFns.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,24 +39,26 @@ export function matchesSelectorAndParentsTo(el: Node, selector: string, baseNode
3939
return false;
4040
}
4141

42-
export function addEvent(el: ?Node, event: string, handler: Function): void {
43-
if (!el) { return; }
44-
if (el.attachEvent) {
42+
export function addEvent(el: ?Node, event: string, handler: Function, inputOptions?: Object): void {
43+
if (!el) return;
44+
const options = {capture: true, ...inputOptions};
45+
if (el.addEventListener) {
46+
el.addEventListener(event, handler, options);
47+
} else if (el.attachEvent) {
4548
el.attachEvent('on' + event, handler);
46-
} else if (el.addEventListener) {
47-
el.addEventListener(event, handler, true);
4849
} else {
4950
// $FlowIgnore: Doesn't think elements are indexable
5051
el['on' + event] = handler;
5152
}
5253
}
5354

54-
export function removeEvent(el: ?Node, event: string, handler: Function): void {
55-
if (!el) { return; }
56-
if (el.detachEvent) {
55+
export function removeEvent(el: ?Node, event: string, handler: Function, inputOptions?: Object): void {
56+
if (!el) return;
57+
const options = {capture: true, ...inputOptions};
58+
if (el.removeEventListener) {
59+
el.removeEventListener(event, handler, options);
60+
} else if (el.detachEvent) {
5761
el.detachEvent('on' + event, handler);
58-
} else if (el.removeEventListener) {
59-
el.removeEventListener(event, handler, true);
6062
} else {
6163
// $FlowIgnore: Doesn't think elements are indexable
6264
el['on' + event] = null;

0 commit comments

Comments
 (0)