Handle click outside
JavaScript, Browser, Event · Jan 6, 2021

Runs the callback whenever the user clicks outside of the specified element.
- Use
EventTarget.addEventListener()
to listen for'click'
events. - Use
Node.contains()
to check ifEvent.target
is a descendant ofelement
and runcallback
if not.
const onClickOutside = (element, callback) => {
document.addEventListener('click', e => {
if (!element.contains(e.target)) callback();
});
};
onClickOutside('#my-element', () => console.log('Hello'));
// Will log 'Hello' whenever the user clicks outside of #my-element