2009-12-15 20 views
48

mam ten kod:jquery prepend + fadeIn

$.ajax({ 
     url : url, 
     data : {ids : JSON.stringify(jsonids), hotel_id: hotel_id}, 
     success : function(response) 
     { 
      $('#be-images ul').prepend(response).fadeIn('slow'); 
     }, 
     dataType: 'html' 
    }); 

ale Fade In nie działa ... Chcę zawartość być poprzedzany i zniknął w ... w jaki sposób mogę to zrobić?

Z góry dziękuję!

Odpowiedz

105

Zakładając response HTML jest następnie spróbuj tego:

$(response).hide().prependTo("#be-images ul").fadeIn("slow"); 

Kiedy robisz to w ten sposób:

$('#be-images ul').prepend(response).fadeIn('slow'); 

rzeczą jesteś rzeczywiście blaknięcie jest wynikiem początkowej selektora (the lista z przodu), która jest już widoczna.

+0

działa doskonale! dzięki! – yretuta

+0

zarówno cletus jak i nick, twoje sposoby są niesamowite .. natknąłem się na ten sam problem i obie twoje drogi działają jak bryza ... dzięki ... – coder101

+0

działa jak urok ... –

37

+1 do klasy, ale chciałem po prostu podkreślić inny sposób, w jaki można to zrobić.

$('#be-images ul').prepend(
    $(response).hide().fadeIn('slow') 
); 
+5

+1 interesujące. Nigdy nie widziałem, żeby to było zrobione w ten sposób. – cletus

+0

działa to dobrze, ponieważ nie ukrywa elementu, do którego ma zostać przedrostkiem, tylko element będący przedrostkiem –

1

Spróbuj tego: HTML

<button>Add</button> 
<div id="data"></div> 

Jquery:

$('button').click(function() { 
    $('#data').prepend('<div class="item">Test</div>'"'); 
    $("#data .item:first-child").hide(); 
    $("#data .item:first-child").fadeIn(); 
}); 

żywo Demo: jsfiddle