2011-11-02 67 views
0

這是toggle()函數中的一個片段。我有一個標題,點擊時,使下面的標題向下滑動創建點擊標題內容淡入的空間。Jquery - 即使函數之前未運行,也運行函數。

有工作正常,但我有問題,在堆棧底部的標題。在它下面沒有一個標題向下移動,所以下面的內容淡入淡出的函數不會觸發。

我想保持標題的一般結構滑下來,然後在淡入功能被激發。

$(currentHeader).next('li.header') 
     .animate({ marginTop: itemHeight + 15 }, 1000, function() 
     { 
      $(this).prev('ul#work-headers li').find('ul').fadeIn(500); 
     }); 

任何幫助將不勝感激。

回答

1

我會說有2個解決方案,以這樣的:

的快速和骯髒的:

添加一個空LI標籤:

<li class="header" style="display:none;"></li> 

或更改代碼的代碼添加在每個UL對之後保證金爲UL或某個div。

+0

這種骯髒的解決方案,但它的工作。我剛剛創建了一個標題,只顯示一個標題,而不是將其留空,只需鍵入網站名稱即可。感謝您的簡單解決方案! –

+0

嘿嘿好...有時很高興有一個快速修復,然後繼續與更重要的/有趣的東西:) – Holger

0

我不能真的測試這個,所以你必須找出扭結,但基本的想法是封裝你想要的邏輯,以便它可以與不會觸發的動畫分開調用一些案例。

var fadeIn= function(content) { 
        $(content).find('ul').fadeIn(500); 
       } 
var next = $(currentHeader).next('li.header'); 

if(next.length>0) { 
    next.animate({ marginTop: itemHeight + 15 }, 1000, function() 
     { 
      fadeIn($(this).prev('ul#work-headers li')); 
     }); 
} 
else { 
    fadeIn($(this).find('ul#work-headers li')); 
} 

編輯 - 如@霍爾格的想法更是誠實的

+0

沒有測試過這一點,但使用長度屬性是我將如何接近這一點。感謝您的嘗試,如果我有時間,我會嘗試一下。 –