Закрытие окна на jQuery

Ms-Dred
На сайте с 27.12.2009
Offline
210
795

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

Написал скрипт

http://jsfiddle.net/webphp/Z3uXT/

При нажатии на кнопку блок раскрывается, при повторном нажатии скрывает. Нужно сделать чтобы, если блок раскрыт и был клик по любому участку страницы, но не по самому блоку и тому что внутри него, он закрывался.

Может кто нибудь поможет?

Мы там, где рады нас видеть.
ДП
На сайте с 23.11.2009
Offline
190
#1

Общий принцип такой - есть два обработчика кликов:

1. Отлавливает все клики внутри раскрытого окна и не пускает их выше под DOM. т.е. делаете event.stopPropagation();

2. Висит на элементе body. В обработчике проверяете - показан ли попап. Если показан - то скрываете.

В методе используется свойство всплытия событий вверх по DOM. Т.е. если клик у вас будет внутри попапа - то первый обратботчик не даст ему всплыть до второго. А если событие пришло ко второму обработчику и при этом попап показан - то значит, что клик был мимо него.

З.Ы окно=попап в тексте.

V2
На сайте с 21.06.2013
Offline
47
#2

$(document).click(function(e){

if ($(e.target).closest(".класс-блока-скрывашки").length) return;
// здесь скрываем нужный блок
e.stopPropagation();
});

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий