VanillaJs
function onClickClose(elem) { // вызвать в момент показа окна, где elem - окно
function outsideClickListener(event) {
if (!elem.contains(event.target) && isVisible(elem)) { // проверяем, что клик не по элементу и элемент виден
elem.style.display = 'none'; //скрыть
document.removeEventListener('click', outsideClickListener);
}
}
document.addEventListener('click', outsideClickListener)
}
function isVisible(elem) { //открыто ли условное окно
return !!elem && !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
}