2011-05-08 74 views
0

我寫了一個自定義的下拉菜單,問題是如果你將鼠標懸停在快速上面,它會開始瘋狂地上下。這裏有一個例子:http://www.norrispenrose.com/簡單問題的jQuery幫助

這裏是我的jQuery代碼:

jQuery(document).ready(function(){ // menu system 
     jQuery('#mainMenu li').hover(function() { 
       jQuery(this).corner('5px'); 
      }); 

     jQuery('#mainMenu li').hover(function() { 
     if(jQuery(this).children().is('ul')) 
      { 
       jQuery(this).uncorner(); 
       jQuery(this).corner('top 5px'); 
       jQuery('ul', this).slideDown('fast'); 
       jQuery('ul', this).uncorner(); 
       jQuery('ul', this).corner('tr br bl 5px'); 
       jQuery(this).addClass('dropHover'); 
      } 
      else 
      { 
     //Do nothing 
     } 

     }, function() { 
      jQuery('ul', this).slideUp('fast'); 
      jQuery(this).delay(200).queue(function() { 
       jQuery(this).removeClass('dropHover'); 
       jQuery(this).dequeue(); 
      }); 
      jQuery(this).uncorner(); 

     }); 
    }); 

任何幫助,將不勝感激!

+1

你可以改善這個問題的標題? – 2011-05-08 01:27:34

+0

[停止jQuery排隊事件]的可能的重複。(http://stackoverflow.com/questions/3594175/stop-jquery-queuing-events) – mVChr 2011-05-08 01:36:37

+0

我應該改變標題? – kel 2011-05-08 02:02:20

回答

2

在您的slideUpslideDown之前使用jQuery stop()方法(docs)清除動畫隊列。例如從您的代碼:

jQuery('ul', this).stop(true, true).slideDown('fast'); 
+0

哇,謝謝,我知道這是簡單的東西,只是不知道該怎麼做! – kel 2011-05-08 02:01:20