Chyba już dziś za dlugoo siedzę w kodzi bo nie mogę znaleźć rozwiązania, które pewnie jest banalne.
A więc tak, potrzebuje zwinąć element przy użyciu slideToggle('slow')
Później zamienić zwjany div replaceWith(editcomment)
i rozwinąć slideToggle('slow')
Czyli coś za zasadzie, co nie zgubi animacji
Kod:
$("div#"+cid+".statusupdate_comment").slideToggle('slow');
$("div#"+cid+".statusupdate_comment").replaceWith(editcomment);
$("div#"+cid+".statusupdate_comment").slideToggle('slow');
Jakieś pomysły? druga wersja diva ta na którą zamieniam ma display: none, klasy i id zostają bez zmian
Może warunek "jeżeli jest styl display:none wykonaj $("div#"+cid+".statusupdate_comment").replaceWith(editcomment);"?
Druga propozycja, która nie wiem czy jest możliwa(nie testowałem).
Kod PHP:
if($("div#"+cid+".statusupdate_comment").slideToggle('slow')){
$("div#"+cid+".statusupdate_comment").replaceWith(editcomment);
$("div#"+cid+".statusupdate_comment").slideToggle('slow');
}
no niestety brak animacji chowania, dzięki za chęci
Musi poczekać aż skończy pierwszą zamienić i zacząc drugą
Nie jestem pewny czy da się tak zrobić przy użyciu slideToggle. Wydaje mi się, że kiedy rozwiniemy diva, który zostanie zmieniony to wszelkie operacje, które zostały na nim wykonane zostają z zapomniane/skasowane, przez to funkcja slideToggle zapomina, że dokonała już rozwinięcia i zamiast zwinąć slideToggle probuje rozwinąć ten element. Nie prościej byłoby zmienić tylko zawartość elementu funkcją text() lub html() ?
brawo bravissimo !!!
wygląda na to że funkcja jeszcze jakoś unikalnie rozróżnia dyivy
dzięki
(14.04.2016, 21:45)NiespecjalnieUzdolniony napisał(a): [ -> ]Zobacz jako parametr mozna podac funkcje ktora wykona sie po animacji. Czy moze zle to zrozumialem?
dobrze zrozumiales
Jeśli chcesz zamienić tylko tekst w divie, to poniżej masz przykład.
https://jsfiddle.net/glover/kxx4g1k7/
Funkcja replaceWith(); zamienia całą zawartość wybranego selektora i przez to traci się "efekt animacji".
(15.04.2016, 07:42)gloverek napisał(a): [ -> ]Jeśli chcesz zamienić tylko tekst w divie, to poniżej masz przykład.
https://jsfiddle.net/glover/kxx4g1k7/
Funkcja replaceWith(); zamienia całą zawartość wybranego selektora i przez to traci się "efekt animacji".
chcialem zamienic caly div
replaceWith() zamienia caly element, nie zawartosc
ostatecznie z replace dziala tez tak
Kod:
$("div#"+cid+".statusupdate_comment").slideToggle("slow", function()
{
$("div#"+cid+".statusupdate_comment").replaceWith(editcomment);
$("div#"+cid+".statusupdate_comment").hide();
$("div#"+cid+".statusupdate_comment").slideToggle("slow");
});