16 lines
434 B
JavaScript
16 lines
434 B
JavaScript
export default function clickOutside(node) {
|
|
const handleClick = (event) => {
|
|
if (node && !node.contains(event.target) && !event.defaultPrevented) {
|
|
node.dispatchEvent(new CustomEvent('click_outside', node));
|
|
}
|
|
};
|
|
|
|
document.addEventListener('click', handleClick, true);
|
|
|
|
return {
|
|
destroy() {
|
|
document.removeEventListener('click', handleClick, true);
|
|
},
|
|
};
|
|
}
|