2014-02-25 32 views
0

我有一個問題,可能會有一個簡單的答案,但我似乎無法弄清楚。jQuery第一個懸停問題?

在我的網站上,我有一個導航欄,當懸停時,使用CSS/jQuery翻轉。我在第二個導航項目上有一個下拉菜單,它可以工作,並顯示下拉菜單,當鼠標懸停在上面時...我添加了代碼,以防萬一項目被懸停,然後很快退出,下拉菜單沒有搞砸。它可以工作,但不是第一次(例如懸停,快速關閉=不工作...懸停,快速關閉=工作)。它是可見的here.

您可以查看源代碼來查看HTML(它沒有任何內容的時候不太混亂)。 jQuery的是這樣的:

$("#navigation ul .dropdown").hover(
    function(){ 
     if(windowWidth > 730){ 
      //in case not faded out already 
      $(this).find("ul").fadeOut(10); 

      $(this).delay(600).queue(function(){ 
       $(this).find("ul").fadeIn("slow"); 
       $(this).removeClass("hideOver"); 

       $("#navigation ul .dropdown").mouseleave(function(){ 
        $(this).addClass("hideOver"); 
        $(this).dequeue(); 
       }); 

       $(this).dequeue(); 
      }); //end queue 

      $("#navigation ul .dropdown").mouseleave(function(){ 
       $(this).addClass("hideOver"); 
      }); 

     } //end if (for web view only) 
    }, function(){ 
     $(this).addClass("hideOver"); 
    } 
); 

的CSS類:hideOver(溢出:隱藏),並showOver(溢出:可見)。

當食堂了第一次,它看起來像這樣(因爲沒有應用類由於某種原因):

感謝您的幫助!

+0

你能在小提琴中設置相關的代碼位嗎?您的網站可能會在未來發生變化或下降,對於將來遇到類似問題的用戶來說也不會有太大的幫助。 – badAdviceGuy

回答

0

是否更改代碼:

$("#navigation ul .dropdown").hover 

到:

$("#navigation ul .dropdown").mouseenter 

解決這個問題?只要鼠標移動或離開某個區域,懸停就會觸發。所以如果你已經有一個mouseleave事件,也許你正在尋找的是一個mouseenter事件?

+0

我試過了......如果我做了mouseenter,出於某種原因它不會做下拉菜單。 –