Skip to content

Commit 40406af

Browse files
VdustRmarcosmoura
authored andcommitted
fix(MdMenu): fix close-on-select props (vuematerial#1280)
check whether clicked target is contained in menu content element within `bodyClickObserver` fix vuematerial#1279
1 parent 1cfaf3c commit 40406af

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/components/MdMenu/MdMenuContent.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
@keydown.arrow-down.prevent="setHighlight('down')"
88
@keydown.arrow-up.prevent="setHighlight('up')"
99
@keydown.space.prevent="setSelection"
10-
@keydown.enter.prevent="setSelection">
10+
@keydown.enter.prevent="setSelection"
11+
ref="menu">
1112
<div class="md-menu-content-container md-scrollbar" :class="$mdActiveTheme">
1213
<md-list :class="listClasses" v-bind="$attrs" @keydown.esc="onEsc">
1314
<slot />
@@ -188,7 +189,8 @@
188189
this.MdMenu.bodyClickObserver = new MdObserveEvent(document.body, 'click', $event => {
189190
$event.stopPropagation()
190191
let isMdMenu = this.MdMenu.$el ? this.MdMenu.$el.contains($event.target) : false
191-
if (!this.$el.contains($event.target) && !isMdMenu) {
192+
let isMenuContentEl = this.$refs.menu ? this.$refs.menu.contains($event.target) : false
193+
if (!this.$el.contains($event.target) && !isMdMenu && !isMenuContentEl) {
192194
this.MdMenu.active = false
193195
this.MdMenu.bodyClickObserver.destroy()
194196
this.MdMenu.windowResizeObserver.destroy()

0 commit comments

Comments
 (0)