Выбрать все элементы кроме одного
Всем привет! Задача такова: на сайте есть кнопка логина, при нажатии всплывает окно. Необходимо, чтобы при нажатии на любую область экрана, кроме данного дива, окно закрывалось:
$(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:45. |