在项目中,点击一个icon可以打开el-drawer,现在需要给这个icon加一个tolltip提示(鼠标经过时触发)
加完后发现鼠标移入时tooltip显示,点击按钮打开抽屉,抽屉关闭时,原本触发的tooltip并没有消失,需要点击页面后才能消失
点击打开抽屉
抽屉关闭后icon上的tolltip没消失...
(通过度娘后~)
原因:因为遮罩层的问题,导致元素的事件监听不到鼠标离开,导致关闭弹窗后,浏览器又自动选中了。
解决方法:既然元素的事件监听不到鼠标的离开,说明一直有焦点触发事件,导致tooltip一直被触发,所以在点击元素时,使当前触发tooltip的dom失去焦点,从而tooltip消失
blur() 失去焦点
<el-tooltip
class="linkage-tip"
placement="top"
effect="dark"
>
<x-svg-icon
name="history-icon"
class="pointer icon-notice-color history-icon"
@click.native="onHistoryLinkage($event,linkageItem.id)"
/>
<div slot="content">
{{ $t('design.pageSetting.intelligentLinkage.executionHistory') }}
</div>
</el-tooltip>
onHistoryLinkage (event, linkageId) {
event.currentTarget.blur() // 解决关闭抽屉后 按钮上的tooltip不消失问题
this.$refs.historyDrawer.openDrawer(linkageId)
},
-
点击的元素和触发tooltip的是同一元素
在子元素 直接使用
event.target.blur()子元素 使用
event.currentTargrt.blur() -
点击的元素和触发tooltip的不是同一元素
可以使用ref的方式获取触发的dom元素。