Skip to content

Commit

Permalink
Submenu: fix prop append-to-body . ElemeFE#16289
Browse files Browse the repository at this point in the history
  • Loading branch information
a631807682 authored and luguokong committed Jul 16, 2019
1 parent aeb49d1 commit 5379a04
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions packages/menu/src/submenu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,12 @@
this.timeout = setTimeout(() => {
this.rootMenu.openMenu(this.index, this.indexPath);
}, showTimeout);
if (this.appendToBody) {
this.$parent.$el.dispatchEvent(new MouseEvent('mouseenter'));
}
},
handleMouseleave() {
handleMouseleave(deepDispatch = false) {
const {rootMenu} = this;
if (
(rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal') ||
Expand All @@ -208,11 +212,14 @@
this.dispatch('ElSubmenu', 'mouse-leave-child');
clearTimeout(this.timeout);
this.timeout = setTimeout(() => {
if (this.appendToBody) {
this.rootMenu.openedMenus = [];
}
!this.mouseInChild && this.rootMenu.closeMenu(this.index);
}, this.hideTimeout);
if (this.appendToBody && deepDispatch) {
if (this.$parent.$options.name === 'ElSubmenu') {
this.$parent.handleMouseleave(true);
}
}
},
handleTitleMouseenter() {
if (this.mode === 'horizontal' && !this.rootMenu.backgroundColor) return;
Expand Down Expand Up @@ -279,7 +286,7 @@
v-show={opened}
class={[`el-menu--${mode}`, popperClass]}
on-mouseenter={($event) => this.handleMouseenter($event, 100)}
on-mouseleave={this.handleMouseleave}
on-mouseleave={() => this.handleMouseleave(true)}
on-focus={($event) => this.handleMouseenter($event, 100)}>
<ul
role="menu"
Expand Down Expand Up @@ -320,7 +327,7 @@
aria-haspopup="true"
aria-expanded={opened}
on-mouseenter={this.handleMouseenter}
on-mouseleave={this.handleMouseleave}
on-mouseleave={() => this.handleMouseleave(false)}
on-focus={this.handleMouseenter}
>
<div
Expand Down

0 comments on commit 5379a04

Please sign in to comment.