2012-09-19 97 views
0

我在做動畫菜單jQuery(3個關卡)。我正在使用效果slideDownslideUp。有時(但並非總是),當我打開第一個主要項目的子菜單時,第二個主要項目的子菜單將無法工作,直到我刷新頁面。它工作正常與Efects fadeInfadeOut,但我想使用幻燈片。jQuery滑動菜單錯誤

這裏是我的代碼:http://jsfiddle.net/mcCAx/

+0

我明白你在說什麼,我會得到一個答案給你,別人的評論,但看起來他們刪除了 –

+0

無法重現。請確保在詢問這樣的問題時詳細說明您正在使用的瀏覽器/版本。 – donutdan4114

+0

@ donutdan4114我在所有瀏覽器中測試過它。 – user1684230

回答

0

的問題是你的<ul class="SubStage">元素的造型正被重寫。因此,通過在回調中重寫樣式來撲滅火災。每次都會顯示您的側邊菜單。 :)

$(document).ready(function() 
{  

    $('li.MainStage').hover(
    function() 
     { 
      $(this).find('ul.SubStage').slideDown('slow',function(){ 
       $(this).parent().find('ul.SubStage').css({overflow:"visible"}); 
      }); 
     }, 
    function() 
     { 
      $(this).find('ul.SubStage').stop().slideUp('slow'); 
     }); 

    $('li.SubStage').hover(
    function() 
     { 
      $(this).find('ul.Sub2Stage').slideDown('slow'); 
     }, 
    function() 
     { 
      $(this).find('ul.Sub2Stage').stop().slideUp('slow'); 
     });   
});​ 

Check it out here.

+0

謝謝。這工作。 – user1684230

0

這個固定爲我Here

$(document).ready(function() 
    {  
     $('li.MainStage').hover(  function() 
      { 
       $(this).stop(); 
       $(this).find('ul.SubStage').slideDown('slow'); 
      },  function() 
      { 
       $(this).stop(); 
       $(this).find('ul.SubStage').slideUp('slow'); 
      }); 

     $('li.SubStage').hover(  function() 
      { 
       $(this).stop(); 
       $(this).find('ul.Sub2Stage').slideDown('slow'); 
      },  function() 
      { 
       $(this).stop(); 
       $(this).find('ul.Sub2Stage').slideUp('slow'); 
      });   
    }); 
+0

這不會阻止在標籤上運行鼠標時排隊的動畫。爲了明白我的意思,在你的jsFiddle和他的所有3個標籤中運行鼠標。 – Aust

+0

@Aust - frmo我的理解 - 問題是,在子菜單變爲懸停狀態後,當您嘗試找到懸停的其他子菜單時,它將無法工作,一旦您查看子菜單,其他子菜單將不會顯示直到頁面刷新 - 修復了這個問題 –

+0

是真的。但是根據OP的評論'它可以用efects fadeIn和fadeOut工作,但是我想用slide.'就好像他對他的動畫很特別。如果他不關心這一點,那麼這完美地工作。我只是確保你意識到這一點。 :) – Aust