Нужно закрыть div
, если клик был вне его области.
Имеем:
function backcall() {
var status = document.getElementById('backcallmsgdiv');
status.style.height = "500px";
status.style.border = "1px solid #A52629";
status.style.overflow = "visible";
}
function closebc() {
var status = document.getElementById('backcallmsgdiv');
status.style.height = "0px";
status.style.border = "0px solid #A52629";
status.style.overflow = "hidden";
status.addEventListener("click", stopEvent, false);
}
<div class="cl1">
<a href="#" onclick="backcall()">Свяжитесь с нами</a>
</div>
<div id="backcallmsgdiv">
<a href="#" onclick="closebc()" >
<div id="close">X</div>
</a>
<div class="tre"></div>
</div>
Как закрыть блок при клике вне его? Пробовал повесить функцию на body
(при клике на body
закрытие блока, но он тогда просто не открывается).
Идея состоит в том, чтобы запретить продвижение события click
по DOM вверх, если клик произведён по элементу "Свяжитесь с нами" или #backcallmsgdiv
(за исключением #close
). В таком случае можно закрывать окно по клику в document
:
document.addEventListener('DOMContentLoaded', onDomReady);
function onDomReady() {
var status = document.getElementById('backcallmsgdiv');
var conactUs = document.getElementById('contactUs');
var close = document.getElementById('close');
conactUs.addEventListener('click', function(event) {
status.style.height = "500px";
status.style.border = "1px solid #A52629";
status.style.overflow = "visible";
event.stopPropagation();
});
status.addEventListener('click', function(event) {
event.stopPropagation();
});
function closebc() {
status.style.height = "0px";
status.style.border = "0px solid #A52629";
status.style.overflow = "hidden";
}
document.addEventListener('click', closebc);
close.addEventListener('click', closebc);
};
<div class="cl1">
<a id="contactUs" href="#">Свяжитесь с нами</a>
</div>
<div id="backcallmsgdiv">
<a href="#">
<div id="close">X</div>
</a>
</div>
попробывал повесить функцию на body (при клике на боде закрытие блока, но он тогда просто не открывается)
Забыл проверить, что кликается не что-то внутри этого div'а.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите, как реализовать поиск заданного слова на html странице?
Стоит задача поиска всех не повторяющихся тегов без атрибутов (например, head, body) в HTML файле с помощью регулярных выражений
Доброго времени сутокЯ столкнулся с такой проблемой: не могу растянуть видео на всю ширину страницы в Adobe Muse