2014-04-21 168 views
0

我使用應該像動態菜單或其他東西一樣動畫div(向下滑動)的jQuery函數。jQuery SlideDown()不等待動畫的延遲

問題是即使我設置了delay() - 當鼠標移過它時,無論光標停留多長時間,它都會滑動並上移。

澄清。如果我將鼠標放在某個div上,它會很好地工作,它會等待延遲然後滑動。但是,如果我在例子中快速瀏覽所有div,它會發出奇怪的反應,就像divs開始滑落,但突然停止並上升。試試我的小提琴,你會看到。

這是FIDDLE

jQuery(".subdiv").hide(); 

jQuery(".mydiv").hover(function(){ 
    jQuery(this).find(".subdiv").stop().delay(800).slideDown("slow"); 
}, function(){ 
    jQuery(this).find(".subdiv").stop().delay(200).slideUp("slow"); 
}); 
+0

http://jsfiddle.net/GzxJf/8/ – adeneo

+0

難以置信。謝謝你,小夥伴。仍然是一個起始者 – mpavlovic89

回答

0

因此,像這樣:

http://jsfiddle.net/GzxJf/12/

jQuery(".subdiv").hide(); 

jQuery(".mydiv").hover(function(){ 
    jQuery(".subdiv").each(function() { 
     if(jQuery(this).attr('display') !== "none") { 
      jQuery(this).stop(true).slideUp("slow"); 
     } 
    }); 
    jQuery(this).find(".subdiv").slideDown("slow"); 
}, function(){ 
    jQuery(this).find(".subdiv").slideUp("slow"); 
});