【发布时间】:2010-09-13 01:14:39
【问题描述】:
我遇到了一些 jquery 动画的问题。
我已经动态创建了带有“mouseover”和“mouseout”实时事件的 div,在这里我只需使用带有 stop() 的 animate() 方法更改 div 的不透明度,以防止队列建立。而且我在 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 添加一个类,然后检查该类的 'mouseout' 事件,但它们都没有修复问题一直存在(如果我将鼠标移出太快,淡出/上滑动画仍然会停止)。
有没有人知道防止这种情况发生的好方法?
【问题讨论】: