Показать сообщение отдельно
  #1 (permalink)  
Старый 16.06.2011, 21:11
Аватар для Freakmeister
Аспирант
Отправить личное сообщение для Freakmeister Посмотреть профиль Найти все сообщения от Freakmeister
 
Регистрация: 15.01.2011
Сообщений: 61

2 события, 1 действие
<div class="green_message"><a href="#">x</a><p>Сообщение</p></div>

Код:
.green_message {
background-color: #AEFFAE;
border: 1px solid green;
display: none;
}
.green_message p {
padding: 8px;
}
.green_message a {
float: right;
margin-right: 3px;
cursor: pointer;
text-decoration: none;
color: #333333;
}
.green_message a:hover {
color: green;
text-decoration: none;
}
function hideMessage() {
    alert('функция вызвана'); //добавлено для наглядности. функция вызывается явно раньше delay('3000');
    $('.green_message').hide('blind', 700);
};

$('.green_message').fadeIn(700, function(){
    $(this).delay('3000');
    hideMessage();
});

$('.green_message a').click(function(event){
    event.preventDefault();
    hideMessage();
});

Пытаюсь сделать всплывающее окошко c сообщением в стиле ютуба, чтобы оно само закрывалось через 3 секунды, или чтобы его можно было закрыть крестиком. Для скрытия использую эффект "blind" из jQuery_UI. Проблема в том, чтобы предотвратить выполнение функции второй раз. Сейчас если нажать крестик - анимация скрытия блока происходит 2 раза. Пробовал извращаться с глобальной булевой переменной, ничего не вышло. Нид хэлп. =\ Может как-то сделать delay другим способом?

Последний раз редактировалось Freakmeister, 16.06.2011 в 21:17.
Ответить с цитированием