2011-11-03 65 views
1

我已經設置了這個功能來顯示一次在導航中定位的div。阻止jquery函數的雙重執行?

$(document).ready(function(){ 
    $('.div1, .div2').hide(); 
    $("nav a").hover(function() { 
    var name= this.name; 
    $("."+name).fadeIn().siblings().hide(); 
    }); 
}); 

此功能,但如果我的切換非常快beteween我的導航元素,可能發生DIV1和DIV2出現在同一時間。

我該如何防止這種情況發生?

謝謝。

回答

2

添加致電stop以在隱藏之前停止現有的動畫。

$(document).ready(function(){ 
    $('.div1, .div2').hide(); 
    $("nav a").hover(function() { 
    var name= this.name; 
    $("."+name).fadeIn().siblings().stop(true, true).hide(); 
    }); 
}); 
+0

完美!這樣的elegeant和簡單的解決方案。很高興知道未來的腳本。非常感謝你! – Melros

+0

哦,我剛剛認識到,如果我切換到快速,並且div可能會在半透明狀態下停止並且無法恢復,則動畫會停在某一點。那是怎麼回事?可能重寫腳本是一個可靠的解決方案? – Melros

+0

按照文檔,您是否嘗試將'true'作爲第二個參數傳遞給'stop'? –