VueUse onClickOutside仅支持左键点击,如何使其兼容右键点击?
解决VueUse onClickOutside响应右键点击的问题
默认情况下onClickOutside只监听click事件(对应左键点击),要让它响应右键,只需要在配置项里指定额外的事件类型即可:
- 核心配置:给
onClickOutside的第三个参数(配置对象)添加eventTypes: ['click', 'contextmenu'],其中contextmenu就是右键点击触发的事件 - 完整示例代码:
<script setup> import { ref } from 'vue' import { onClickOutside } from '@vueuse/core' const targetEl = ref(null) onClickOutside(targetEl, (e) => { // 可选:区分左键/右键 if (e.button === 0) console.log('外部左键点击') if (e.button === 2) console.log('外部右键点击') }, { eventTypes: ['click', 'contextmenu'] // 关键配置项 }) </script> <template> <div ref="targetEl" style="width: 200px; height: 200px; background: #f0f0f0;"> 点击外部区域(左键/右键)测试 </div> </template>
补充说明:
- 如果只需要响应右键,直接把
eventTypes设为['contextmenu']即可 - 通过事件对象的
button属性可以区分点击类型:0=左键,2=右键
内容的提问来源于stack exchange,提问作者MrSpt
相关产品推荐
相关产品推荐

