Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Закрытие окошка при клике на участке сайта (https://javascript.ru/forum/dom-window/20634-zakrytie-okoshka-pri-klike-na-uchastke-sajjta.html)

tahat4 11.08.2011 22:21

Закрытие окошка при клике на участке сайта
 
Здравствуйте, уважаемые форумчане!
Давно читаю форум, но вопрос, на который ответ я так и не нашел, возник только сегодня.
Есть на страничке календарик (изначально скрытый), при клике на соответствующей иконке - календарик начинает отображаться на сайте. Но тут возникла проблема: не могу реализовать закрытие сие календарика при нажатии на любом участке сайта.
Раньше, для некоторых форм использовал следующий код:
function hide_all() {
    var tgt=window.event? window.event.srcElement: ev.target;
        if(tgt.id!='form') $('.form_approve').fadeOut(300);
  }
document.onclick = hide_all;

Но здесь каждый id надо включать как исключение в if, а в календарике их уйма.

ksa 12.08.2011 09:10

Цитата:

Сообщение от tahat4
а в календарике их уйма

Наверняка есть какой-то "главный" в котором и находятся все остальные элементы того календарика...

tahat4 12.08.2011 09:31

ksa,
Спасибо за ответ!
Но сегодня с утра нашел другое решение. С помощью определения координат блока с календарем и если кликаем по другому участку сайта, то блок закрывается, вот как-то так:
var mouseX = e.pageX;
    var mouseY = e.pageY;
    var width = elementWindow.width();
    var height = elementWindow.height();
    var blockLeft = elementWindow.offset().left;
    var blockTop = elementWindow.offset().top;
    var blockRight = blockLeft + width;
    var blockBottom = blockTop+height;
    if(mouseX>=blockLeft && mouseX<=blockRight && mouseY>=blockTop && mouseY<=blockBottom) {}
    else elementWindow.fadeOut(200);


Ну тут вот еще условия норм составить и норм работает)


Часовой пояс GMT +3, время: 04:17.