Fix #5943
This commit is contained in:
parent
b8e155ab40
commit
ff3a97f6cf
2 changed files with 11 additions and 7 deletions
|
@ -53,6 +53,7 @@ export default Vue.extend({
|
|||
return {
|
||||
u: null,
|
||||
show: false,
|
||||
closed: false,
|
||||
top: 0,
|
||||
left: 0,
|
||||
};
|
||||
|
@ -68,6 +69,7 @@ export default Vue.extend({
|
|||
{ userId: this.user };
|
||||
|
||||
this.$root.api('users/show', query).then(user => {
|
||||
if (this.closed) return;
|
||||
this.u = user;
|
||||
this.show = true;
|
||||
});
|
||||
|
@ -83,6 +85,7 @@ export default Vue.extend({
|
|||
|
||||
methods: {
|
||||
close() {
|
||||
this.closed = true;
|
||||
this.show = false;
|
||||
if (this.$refs.content) (this.$refs.content as any).style.pointerEvents = 'none';
|
||||
}
|
||||
|
|
|
@ -39,11 +39,15 @@ export default {
|
|||
self.hideTimer = setTimeout(self.close, 500);
|
||||
});
|
||||
|
||||
self.checkTimer = setInterval(() => {
|
||||
if (!document.body.contains(el)) self.close();
|
||||
}, 1000);
|
||||
|
||||
document.body.appendChild(self.tag.$el);
|
||||
|
||||
self.checkTimer = setInterval(() => {
|
||||
if (!document.body.contains(el)) {
|
||||
clearTimeout(self.showTimer);
|
||||
clearTimeout(self.hideTimer);
|
||||
self.close();
|
||||
}
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
el.addEventListener('mouseover', () => {
|
||||
|
@ -66,9 +70,6 @@ export default {
|
|||
|
||||
unbind(el, binding, vn) {
|
||||
const self = el._userPreviewDirective_;
|
||||
clearTimeout(self.showTimer);
|
||||
clearTimeout(self.hideTimer);
|
||||
clearInterval(self.checkTimer);
|
||||
self.close();
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue