fix(components): [el-dropdown-item] (#6147)

the method of click event is executed twice in some cases (#5838)
This commit is contained in:
iwusong 2022-02-21 10:14:05 +08:00 committed by GitHub
parent c60f75a0c5
commit 46dfd1588e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View File

@ -11,7 +11,7 @@
:class="[ns.be('menu', 'item'), ns.is('disabled', disabled)]"
:tabindex="tabIndex"
role="menuitem"
@click="(e) => $emit('click', e)"
@click="(e) => $emit('clickimpl', e)"
@focus="handleFocus"
@keydown="handleKeydown"
@mousedown="handleMousedown"
@ -45,7 +45,7 @@ export default defineComponent({
ElIcon,
},
props: dropdownItemProps,
emits: ['pointermove', 'pointerleave', 'click'],
emits: ['pointermove', 'pointerleave', 'click', 'clickimpl'],
setup(_, { emit }) {
const ns = useNamespace('dropdown')
@ -78,7 +78,7 @@ export default defineComponent({
if (code === EVENT_CODE.enter || code === EVENT_CODE.space) {
e.preventDefault()
e.stopImmediatePropagation()
emit('click', e)
emit('clickimpl', e)
return true
}
}, handleItemKeydown)

View File

@ -8,7 +8,7 @@
v-bind="propsAndAttrs"
@pointerleave="handlePointerLeave"
@pointermove="handlePointerMove"
@click="handleClick"
@clickimpl="handleClick"
>
<slot />
</el-dropdown-item-impl>