Skip to content
This repository was archived by the owner on Dec 1, 2023. It is now read-only.

Commit 086a8d4

Browse files
fix relatedTarget issue cleanup
1 parent b8d95ab commit 086a8d4

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/validate.js

+14-11
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,6 @@ export var Validate = {
2424
this.el._dirty = false;
2525
this.el._touched = false;
2626

27-
// RelatedTarget property dose not work in Safari, IE & Firefox
28-
var handler = e => {
29-
this.relatedTarget = e.target;
30-
setTimeout(() => this.relatedTarget = null, 0);
31-
};
32-
33-
on(document, 'mousedown', handler);
34-
on(document, 'pointerdown', handler);
35-
on(document, 'touchstart', handler);
36-
3727
on(this.el, 'blur', this.listener.bind(this));
3828
on(this.el, 'input', this.listener.bind(this));
3929

@@ -54,7 +44,7 @@ export var Validate = {
5444

5545
listener(e) {
5646

57-
if (this.relatedTarget && (this.relatedTarget.tagName === 'A' || this.relatedTarget.tagName === 'BUTTON')) {
47+
if (related.target && (related.target.tagName === 'A' || related.target.tagName === 'BUTTON')) {
5848
return;
5949
}
6050

@@ -98,3 +88,16 @@ export var Validate = {
9888
}
9989

10090
};
91+
92+
// RelatedTarget property dose not work in Safari, IE & Firefox
93+
const related = {
94+
target: null,
95+
handler ({target}) {
96+
related.target = target;
97+
setTimeout(() => related.target = null, 0);
98+
}
99+
};
100+
101+
on(document, 'mousedown', related.handler);
102+
on(document, 'pointerdown', related.handler);
103+
on(document, 'touchstart', related.handler);

0 commit comments

Comments
 (0)