Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery]wykonywanie czynności jedno po drugim
Forum PHP.pl > Forum > Przedszkole
sweter
Witam, niedawno zacząłem uczyć się jQuery i odnośnie niego mam pytanie:

W jaki sposób opóźnić wykonanie jakiejś akcji do momentu, aż poprzednia czynność się nie wykona?

Np. mamy coś takiego:

Kod
$(a).click(function(){

   $("#jakis_div").fadeOut("slow");

   $("#inny_div").fadeIn("slow");

});


W taki przypadku po kliknięciu na jakiś link 'jakis_div' schowa się, a 'inny_div' pojawi się. Jednak przez momencik oba będą widoczne.

Jak opóźnić wykonanie drugiej czynności?

bikerszymek
Cytat(sweter @ 9.08.2009, 12:41:24 ) *
Witam, niedawno zacząłem uczyć się jQuery i odnośnie niego mam pytanie:

W jaki sposób opóźnić wykonanie jakiejś akcji do momentu, aż poprzednia czynność się nie wykona?

Np. mamy coś takiego:

Kod
$(a).click(function(){
  
      $("#jakis_div").fadeOut("slow");
  
      $("#inny_div").fadeIn("slow");
  
   });


W taki przypadku po kliknięciu na jakiś link 'jakis_div' schowa się, a 'inny_div' pojawi się. Jednak przez momencik oba będą widoczne.

Jak opóźnić wykonanie drugiej czynności?


spróbuj tak:

Kod
$(a).click(function(){

    $("#jakis_div").stop().fadeOut("slow");

    $("#inny_div").stop().fadeIn("slow");

});
sweter
Niestety nie działa sad.gif
bikerszymek
Nie wiem czy chodziło Ci o coś takiego ale na szybko udało mi się zrobić tak:

Kod
$(document).ready(function(){
                  $("#div2").fadeOut(0);
                  $("#div0").click(function(){
                      $("#div2").fadeIn("slow");
                      $("#div1").fadeOut("slow");
                  });
              });
webber
Cytat
Jak opóźnić wykonanie drugiej czynności?


http://www.ryancoughlin.com/2009/01/22/qui...meout-function/
vokiel
A czy zastosowanie łańcucha nie spowoduje, że kolejne zadanie będzie wykonywane po zakończeniu pierwszego?
[JAVASCRIPT] pobierz, plaintext
  1. $(a).click(function(){
  2. $("#jakis_div").fadeOut("slow").find("#inny_div").fadeIn("slow");
  3. });
[JAVASCRIPT] pobierz, plaintext
sweter
Niestety nie vokiel.

Mam takie coś:

  1.  
  2. $(this).fadeOut("normal").html("Schowaj kategorie").fadeIn("normal");
  3.  


I najpierw element zmiena zawartość, później znika i znów się pojawia sad.gif

singles
W przykładzie który podałeś wyżej fadeOut i zmiana zawartości poprzez html startują równocześnie, jak się skończy fadeOut() to wtedy wystartuje fadeIn() dla tego elementu (dwie różne animacje dla tego samego elementu w jQuery są kolejkowane, dla innych elementów startują równocześnie). Dlatego podany przez Ciebie przykład działa tak jak opisałeś.

Odnośnie powyższego przykładu - wszystkie animacje w jquery przyjmują w parametrze funkcję która ma się odpalić po wykonanej animacji - tzw. callback. Widać, że się dokumentacji nie czytało tongue.gif
W przykładzie wyżej, jak chcesz podmienić zawartość diva z ładną animacją, to robisz tak:
[JAVASCRIPT] pobierz, plaintext
  1. $('#div-do-podmiany').fadeOut('slow', function() {
  2. //to odpali się dopiero jak powyższa animacja się skończy
  3. $(this).html(nowaZawartosc).fadeIn('slow');
  4. });
[JAVASCRIPT] pobierz, plaintext
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.