2009-09-22 73 views
0

我正在處理下拉菜單的腳本。目前爲止工作正常,但我需要再添加一件東西,但我無法弄清楚。下面是當前的腳本:需要幫助修復這個jQuery下拉腳本


$j('ul.menu > li').hover(

    function() { var ulHeight = $j('ul', this).height(); $j(this).children('ul').css({height: 0}).stop().animate({height: ulHeight}, 400); }, 
    function() { $j(this).children('ul').stop().animate({height: 0}, 400); } 
); 

我需要返回UL的高度,以它的原始大小,並設置顯示器沒有,所以它可以再次運行。現在,隨着高度設置爲0在離開的路上,下一次「ulHeight」被認爲是0。

我試過這樣,但沒有喜悅:


function() { $j(this).children('ul').stop().animate({height: 0}, 400).css({height: ulHeight}); } 

任何任何想法?

+0

你可以在http://jsbin.com上發佈演示嗎? – 2009-09-22 16:43:01

+0

http://jsbin.com/ofaco – 2009-09-22 17:29:57

回答

1

你的子菜單沒有顯示在所有...

但最終,爲什麼另起爐竈? http://css-tricks.com/simple-jquery-dropdowns/Superfish


我建議,現在,我已經看了你的新代碼的唯一的事情,就是更換

.css({"display": "block"}); 
.css({"display": "none"}); 

.show(); 
.hide(); 
分別

,你可以用.hover代替.mouseenter.mouseleave

檢查出來here ...我無法在jsbin中編輯你的代碼(編輯窗口是3行高,我無法滾動),所以我把它轉發到pastebin。

+0

所以我可以學習如何自己製作輪子;-) 我單獨分類的子菜單,因爲我希望它們從側面飛出,而不是從上到下。新的演示版本已經啓動 - 任何人都有清理代碼的指示器請切入! http://jsbin.com/oseri – 2009-09-22 20:17:22

+0

大聲笑好吧......我也想爲自己弄點事情。新版本看起來像在爲我工作,沒有在Firefox的問題。 – Mottie 2009-09-22 20:38:28

+0

酷男,歡呼花時間穿過它。似乎肯定會對這些變化運行一點點甜! – 2009-09-22 21:20:06

0

height屬性的默認值是auto。您應該將其設置爲,而不是0,隱藏時。