Skip to content

Commit eb41032

Browse files
csvwolfziyoung
authored andcommitted
Menu: clickoutside hide submenu (#13296)
* Menu:(fix) clickoutside hide submenu * fix: optimize code
1 parent 0361026 commit eb41032

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

packages/menu/src/submenu.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import menuMixin from './menu-mixin';
44
import Emitter from 'element-ui/src/mixins/emitter';
55
import Popper from 'element-ui/src/utils/vue-popper';
6+
import Clickoutside from 'element-ui/src/utils/clickoutside';
67
78
const poperMixins = {
89
props: {
@@ -29,6 +30,8 @@
2930
3031
components: { ElCollapseTransition },
3132
33+
directives: { Clickoutside },
34+
3235
props: {
3336
index: {
3437
type: String,
@@ -226,6 +229,11 @@
226229
this.referenceElm = this.$el;
227230
this.popperElm = this.$refs.menu;
228231
this.updatePlacement();
232+
},
233+
close() {
234+
this.$nextTick(() => {
235+
if (this.opened) this.rootMenu.closeMenu(this.index);
236+
});
229237
}
230238
},
231239
created() {
@@ -315,6 +323,7 @@
315323
on-mouseenter={this.handleMouseenter}
316324
on-mouseleave={this.handleMouseleave}
317325
on-focus={this.handleMouseenter}
326+
v-clickoutside={this.close}
318327
>
319328
<div
320329
class="el-submenu__title"

0 commit comments

Comments
 (0)