Выбрать все элементы кроме одного
Всем привет! Задача такова: на сайте есть кнопка логина, при нажатии всплывает окно. Необходимо, чтобы при нажатии на любую область экрана, кроме данного дива, окно закрывалось:
$(document).ready(function(){ $('#login').click(function(){ $('.login-form').toggle(); }); $('*').not('a#login').not('.login-form').click(function(){ $('.login-form').hide(); }); }); Ничего не выходит. |
$('*') - ооо... на странице обычно очень много элементов, вешать на них на все события?!.. лучше уж как-то так:
<style> .popup { padding: 5px; height: 100px; width: 100px; background-color: #DCDCDC; border: 1px #ACACAC solid; } .popup span { padding: 4px; border: 1px #AAA solid; background-color: gray; } </style> <div class="popup">This is <span>popup</span></div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script> $(function() { var over = false; $('.popup').mouseenter(function() { over = true; }) .mouseleave(function() { over = false; }); $(document).click(function(e) { if (!over) { $('.popup').hide(); $(this).unbind(e); } }); }); </script> |
Обычно это делается так: помимо основного блока, содержащего окно, есть еще блок-подложка, лежащий под ним и растянутый на 100% по высоте и ширине. Вот ему и нужно onclick ставить.
|
спасибо
|
Часовой пояс GMT +3, время: 04:51. |