mirror of
https://github.com/Hopiu/vue-material.git
synced 2026-05-08 23:44:44 +00:00
Listen to focus and blur events for tooltips
This commit is contained in:
parent
9f7c5e4958
commit
3a6b67065d
1 changed files with 15 additions and 8 deletions
|
|
@ -7,8 +7,8 @@
|
|||
<style lang="scss" src="./mdTooltip.scss"></style>
|
||||
|
||||
<script>
|
||||
let registeredMouseEnter;
|
||||
let registeredMouseLeave;
|
||||
let registeredEnterEvent;
|
||||
let registeredLeaveEvent;
|
||||
|
||||
let calculateTooltipPosition = (scope) => {
|
||||
let position = scope.parent.getBoundingClientRect();
|
||||
|
|
@ -88,19 +88,26 @@
|
|||
this.created = false;
|
||||
this.$remove();
|
||||
|
||||
this.parent.addEventListener('mouseenter', registeredMouseEnter = () => {
|
||||
registeredEnterEvent = () => {
|
||||
this.$appendTo(this.parent);
|
||||
calculateTooltipPosition(this);
|
||||
});
|
||||
};
|
||||
|
||||
this.parent.addEventListener('mouseleave', registeredMouseLeave = () => {
|
||||
registeredLeaveEvent = () => {
|
||||
this.$remove();
|
||||
});
|
||||
};
|
||||
|
||||
this.parent.addEventListener('mouseenter', registeredEnterEvent);
|
||||
this.parent.addEventListener('focus', registeredEnterEvent);
|
||||
this.parent.addEventListener('mouseleave', registeredLeaveEvent);
|
||||
this.parent.addEventListener('blur', registeredLeaveEvent);
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.$remove();
|
||||
this.parent.removeEventListener('mouseenter', registeredMouseEnter);
|
||||
this.parent.removeEventListener('mouseleave', registeredMouseLeave);
|
||||
this.parent.removeEventListener('mouseenter', registeredEnterEvent);
|
||||
this.parent.removeEventListener('focus', registeredEnterEvent);
|
||||
this.parent.removeEventListener('mouseleave', registeredLeaveEvent);
|
||||
this.parent.removeEventListener('blur', registeredLeaveEvent);
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in a new issue