Возможно-ли выполнить определенную функцию если юзер произвел клик вне определенного блока?
Суть в том, что на сайте есть выезжающее меню и когда оно выезжает блюрится весь сайт.
Если закрыть меню повторным нажатием на кнопку меню - блюр пропадет и меню уедет, но, если при открытом меню кликнуть на заблюренную область - закроется меню и не пропадет блюр.
Возможно-ли проверять все клики и сравнивать айди элементов с айди кнопки открытия/закрытия меню?
Виктор: А вообще вот функция которая проверяет что клик прошел вне элементов.
checkParent
function checkParent(target,nodes){
var ignore=[];
var result=[];
while(target.parentNode){
for(var q=0;q<nodes.length;q++){
var node=nodes[q]
if(node==target){
ignore.push(q);
}
}
target=target.parentNode;
}
for(var q=0;q<nodes.length;q++){
if(ignore.indexOf(q)>-1){
continue};
result.push(nodes[q])
}
return result
}
Она принимает target - это элемент по которому кликнули nodes - массив элементов, которые могут быть потенциально родителем элемента по которому кликнули.