我目前正在try 使用onClickOutside,但它只有在我用鼠标左键单击外部时才起作用. 我也需要让它在鼠标右键上工作.
对此有什么解决方案吗?也许我错过了这个功能的一些选项.
我目前正在try 使用onClickOutside,但它只有在我用鼠标左键单击外部时才起作用. 我也需要让它在鼠标右键上工作.
对此有什么解决方案吗?也许我错过了这个功能的一些选项.
VueUse在这里不起作用,因为不会引发Click事件.相反,将在此处引发ConextMenu事件.
试着这样做:
import type { Ref } from 'vue'
export const useClickOutside = (target: Ref<HTMLElement>, handler: () => void) => {
const { isOutside } = useMouseInElement(target)
const onClick = () => {
if (isOutside.value) {
handler()
}
}
onMounted(() => {
document.addEventListener('click', onClick)
document.addEventListener('contextmenu', onClick)
})
onUnmounted(() => {
document.removeEventListener('click', onClick)
document.removeEventListener('contextmenu', onClick)
})
}