Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.08.2011, 22:21
Новичок на форуме
Отправить личное сообщение для tahat4 Посмотреть профиль Найти все сообщения от tahat4
 
Регистрация: 11.08.2011
Сообщений: 2

Закрытие окошка при клике на участке сайта
Здравствуйте, уважаемые форумчане!
Давно читаю форум, но вопрос, на который ответ я так и не нашел, возник только сегодня.
Есть на страничке календарик (изначально скрытый), при клике на соответствующей иконке - календарик начинает отображаться на сайте. Но тут возникла проблема: не могу реализовать закрытие сие календарика при нажатии на любом участке сайта.
Раньше, для некоторых форм использовал следующий код:
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, а в календарике их уйма.
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2011, 09:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от tahat4
а в календарике их уйма
Наверняка есть какой-то "главный" в котором и находятся все остальные элементы того календарика...
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2011, 09:31
Новичок на форуме
Отправить личное сообщение для tahat4 Посмотреть профиль Найти все сообщения от tahat4
 
Регистрация: 11.08.2011
Сообщений: 2

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);


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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Задача такова : нужно при клике на ссылку открыть страницу с новой вкладке, оставаясь asustekk Javascript под браузер 4 25.05.2012 14:04
menu с выпадающими подменю при наведении и раздвижное при клике bugor Элементы интерфейса 3 04.10.2010 14:32
Двойное действие при клике по ссылке spider Элементы интерфейса 5 10.11.2009 10:43
Закрыть элемент при клике вне его masterm Общие вопросы Javascript 3 31.07.2009 11:27