2013-07-03 46 views
0

我正在加載外部HTML的菜單項。在加載外部HTML之前和之後,我需要淡入淡出或不透明效果。 負載工作正常,但不是收費之間的過渡效應。這似乎是我第一次點擊菜單項,但不是以下內容。HTML加載之前和之後的FadeOut和FadeIn

$(document).ready(function() {       
$('#nav li').click(function() { 
    var prod = $(this).children("a").attr('href'); 
    $(".contenido").fadeOut(500, function() { 
      $(".contenido").load(prod); 
    }); 
    $(".contenido").fadeIn(500); 
    }); 
}); 
+0

如果您能詳細瞭解究竟發生了什麼以及您期望發生什麼,它可能會幫助人們回答問題。雖然我明白你在問什麼,但花了我相當多的時間才真正明白你在說什麼。 –

回答

0

我認爲問題在於你沒有在正確的時間調用fadeIn。將fadeIn放入load的回調函數中。我希望這是你遇到的問題。

$(document).ready(function() {       
    $('#nav li').click(function() { 
     var prod = $(this).children("a").attr('href'); 

     $(".contenido").fadeOut(500, function() { 
      $(this).load(prod, function(){ 
        $(this).fadeIn(500); //Fade In after load finishes 
      }); 
     }); 
    }); 
}); 
+0

這和我的代碼一樣工作,只適用於第一次加載。 – cerilo

+0

沒有看到HTML我不能確定,但​​也許它與.click事件處理程序有關。如果你點擊動態元素,那麼.click()將不起作用。嘗試$(body).on(「click」,「#nav li」,函數) – James

+0

@cerilo試圖獲取所有信息。如果你可以給我們一些你的HTML,那會有幫助。如果您在點擊和加載回調中放置警報框來測試什麼是射擊而不射擊,這將有所幫助。起初他們都會開火,但第二次開火多少? – James