У меня возникла проблема с некоторыми анимациями jquery.конфликт jQuery анимации
У меня есть динамически созданные divs с живыми событиями «mouseover» и «mouseout», где я просто изменяю непрозрачность div, используя метод animate() с stop(), чтобы предотвратить создание очереди. И у меня есть кнопка «закрыть» внутри div с событием click, где я просто делаю div, исчезают, сдвигаются вверх, а затем удаляются из DOM.
Проблема заключается в том, что если я нажму кнопку, а затем переместим мышь за пределы div (инициируя событие mouseout), метод close() заставит эту фазу исчезнуть/ускорить анимацию. Код что-то вроде этого:
$(document).ready(function() {
$('.myDiv').live('mouseover mouseout', function(e) {
if (e.type == 'mouseover') {
$(this).stop().animate({ opacity : '1' });
} else {
$(this).stop().animate({ opacity : '.5' });
}
});
$('.myDiv .close').live('click', function() {
$(this).closest('div').fadeOut('slow', function() {
$(this).slideUp('slow', function() {
$(this).remove();
});
});
});
});
Я уже пробовал использовать метод UNBIND() до анимации, и некоторые другие вещи, как добавить класс к DIV удаляются, а затем проверить в «отведении указателя мыши 'для этого класса, но ни один из них не исправляет проблему все время (если я выхожу слишком быстро, анимация затухания/слайд-анимации все равно останавливается).
Кто-нибудь знает, хороший способ предотвратить это от hapenning?
Спасибо за ваш быстрый ответ Ник, это именно то, что я искал! О слайде(), я не использую эффект fadeOut(), как я сказал в своем сообщении, я на самом деле просто оживляю непрозрачность div, поэтому в конце анимации div только невидим, но не с отображением : none, и я использую эффект slideUp() для анимации div под удаляемым div, что-то вроде этого эффекта: http://return-true.com/examples/jquery-wp-delete.html – martins