Есть скрипт выпадающего блока, проблема в том, если его открыть, то он закрывается по любому клику (не важно кликните вы по открывшимся блоке или за его пределами).
Подскажите, что надо изменить в коде, что бы окно закрывалось только при клике за его пределами, но не по клике по нем.
function DropDown(el) {
this.dd = el;
this.initEvents();
}
DropDown.prototype = {
initEvents: function() {
var obj = this;
obj.dd.on('click', function(event) {
$(this).toggleClass('active');
event.stopPropagation();
});
}
}
$(function() {
var dd = new DropDown($('#wrapper-polz'));
$(document).click(function() {
$('.wrapper-polz').removeClass('active');
});
});
Использовал вот такой скрипт
$(".wrapper").click(function() {
$('.dropdown').toggle();
});
$(document).on('click', function(e) {
if (!$(e.target).closest(".dropdown2").length) {
$('.dropdown').hide();
}
e.stopPropagation();
});
Не совсем понял вопрос, но можно блоку добавить css свойство pointer-events со значением none
.block {
pointer-events: none;
}
Подробнее тут https://developer.mozilla.org/ru/docs/Web/CSS/pointer-events
Сборка персонального компьютера от Artline: умный выбор для современных пользователей