diff --git a/src/components/dropdown/dropdown-item.vue b/src/components/dropdown/dropdown-item.vue index 31f9802..4441d84 100644 --- a/src/components/dropdown/dropdown-item.vue +++ b/src/components/dropdown/dropdown-item.vue @@ -36,16 +36,18 @@ }, methods: { handleClick () { + const $parent = this.$parent.$parent; if (this.disabled) { this.$nextTick(() => { - this.$parent.$parent.visible = true; + $parent.visible = true; }); } else { - if (this.$parent.$parent.trigger === 'hover') { - this.$parent.$parent.visible = false; + if ($parent.trigger === 'hover') { + $parent.visible = false; + $parent.$emit('on-hover-click'); } } - this.$parent.$parent.$emit('on-click', this.key); + $parent.$emit('on-click', this.key); } } } diff --git a/src/components/dropdown/dropdown.vue b/src/components/dropdown/dropdown.vue index a8f3e73..565f6af 100644 --- a/src/components/dropdown/dropdown.vue +++ b/src/components/dropdown/dropdown.vue @@ -87,6 +87,13 @@ if ($parent && $parent.$options.name === 'Dropdown') { $parent.$emit('on-click', key); } + }, + 'on-hover-click' () { + const $parent = this.$parent.$parent; + if ($parent && $parent.$options.name === 'Dropdown') { + $parent.visible = false; + $parent.$emit('on-hover-click'); + } } } } diff --git a/test/routers/dropdown.vue b/test/routers/dropdown.vue index 155b271..d6b5ca9 100644 --- a/test/routers/dropdown.vue +++ b/test/routers/dropdown.vue @@ -1,5 +1,5 @@