Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] jak wymusić zaczekanie?
Forum PHP.pl > Forum > Przedszkole
Wieviór
Mam taki oto skrypcik w jquery:

  1. <script type="text/javascript">
  2. $(document).ready(
  3. function()
  4. {
  5. $('#rebus3_toggle').click(
  6. function()
  7. {
  8. $('#rebus3_tresc').toggle();
  9. if ($('#rebus3_tresc').is(':visible'))
  10. {
  11. $('#rebus3_toggle').html("<a>>> ukryj odpowiedź</a>");
  12. }
  13. else
  14. {
  15. $('#rebus3_toggle').html("<a>>> zobacz odpowiedź</a>");
  16. }
  17. }
  18. );
  19. }
  20. );
  21. </script>


Przy czym div rebus3_toggle to div, w którym jest początkowo tekst: "Zobacz odpowiedź", a div #rebus3_tresc to div, w którym jest tekst, pokazywany i ukrywany.

Problem polega na tym, że jak wpiszę sobie w funkcji toggle parametr "slow", to wpisana dalej instrukcja warunkowa się już gubi, bo wykonuje się chyba zanim ten div będzie w 100% visible i dlatego się nie zmienia. Dlatego zastanawiam się jak wymusić na skrypcie zaczekanie, aż ten div już się rzeczywiście pojawi?
nospor
w jQuery mozesz definiowac lancuch akcji.Kolejne akcje będą sie wykonywac dopiero gdy poprzednie sie skonczą. Doczytaj w dokumentacji bo nigdy z tego nie korzystalem i konkretow ci nie podam
erix
Cytat
bo nigdy z tego nie korzystalem i konkretow ci nie podam

Funkcje animacyjne, jako drugi parametr, przyjmują callback, czyli funkcję wykonywaną po ukończeniu animacji:
Kod
$('selector').fadeIn('slow', function(){
  alert('skończyłem!');
});
gcdreak
wrzuć twój kod html to coś poradzimy
Wieviór
Dzięki, już to inaczej zrobiłem, po prostu zmienia dane w zależności o tego diva, w którym ma zmienić, a nie w zależności od tego drugiego ;]

Pozdrawiam ;]
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.