2010-10-21 11 views
6
$('#container').prepend("<ul><li>Stuff</li></ul>').hide().slideDown(); 

Chcę, aby NOWE UL przesunęło się w dół. ale powyższe jest ześlizgiwanie się po całym #container ..jQuery Przygotuj DIV, przesuwając go w dół

Jak mogę przedłożyć element na górze, a następnie przesuń go w dół .. Trochę jak Twitter używał, aby pokazać swój nowy tweet.

Dziękuję.

Odpowiedz

22

Można spróbować użyć tej składni zamiast:

$('<ul><li>Stuff</li></ul>').prependTo('#container').hide().slideDown(); 

Oczywiście, jeśli używasz listę tak może to być przydatne do konstruowania go element po elemencie tak:

var ul = $('<ul />').prependTo('#container'); 
$('<li />').appendTo(ul).text('Incoming!').hide().slideDown(); 
+0

Dzięki temu pierwszy zadziałał świetnie. Dzięki! Po co budować według elementu, to więcej kodu? – user479959

+0

@user To nie jest tak naprawdę więcej kodu w tym sensie, że jeśli masz zamiar zrobić to dla wielu elementów, szybko staje się bałaganem łączeń ciągów. Druga metoda jest przydatna do zarządzania bardziej złożonymi sprawami. –

+5

Zrobiłbym niewielką zmianę i przesunięcie '.hide()' przed przedmeczeniem/appendTo. Tylko aby zapobiec wyświetlaniu minut przed ukrywaniem (na wolniejszych silnikach JS) ... –