我遇到了一些jQuery動畫的問題。jQuery動畫的衝突
我使用'mouseover'和'mouseout'直播活動動態創建了div,其中我只是使用帶有stop()的animate()方法更改div的不透明度,以防止隊列堆積。我有一個'關閉'按鈕內部的單擊事件,我只是讓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();
});
});
});
});
我已經嘗試過動畫之前使用解除綁定()方法,並移除一些其他的東西,如添加一個類到div,然後在「鼠標移開檢查'的事件,但他們都不能解決問題(如果我將鼠標移出太快,淡出/上移動畫仍然停止)。
有沒有人知道一個好方法來防止這種情況發生?
感謝您的快速回復尼克,這正是我一直在尋找的!關於slideUp(),我沒有使用fadeout()效果,正如我在文章中所說的那樣,我實際上只是動畫了div的不透明度,所以在動畫結束時div只是看不見的,但不能顯示:none,並且我使用slideUp()效果來爲要移除的div下面的div製作動畫效果,如下所示:http://return-true.com/examples/jquery-wp-delete.html – martins 2010-09-13 14:43:53