Javascript - jak opóźnić wykonanie kolejnego polecenia funkcji

0

Mam funkcję JS która rozwija mi ładne menu na stronie i po klknięciu wyboru ładnie je zwija przez polecenie:


$("#menu").slideToggle("slow");
 

Fajnie to działa i menu się tak powoli chowa ale teraz w następnej lini kodu muszę wywołać polecenie przeładowują (AJAX) linie z menu bo wybór przez usera został dokonany i trzeba zmodyfikować wygląd tych elementów graficznych. Piszę więc:


$('#wynik').load('action.php', {par0: par0, par1: par1, par2: par2}, function(result){{});
														

 

Wszytsko działa ok tylko jest problem z grafika menu bo teraz zaraz po wykonaniu wyboru w rozwijanym menu nie ma tego powolnego chowania się menu tylko grafika menu znika i pojawia się nowy załadowany przez Ajaxa element. Aj chcę żeby ta animacja chowania się menu była. Jak opóźnić wywołanie drugiej funkcji ładującej nową grafę aby pierwsza funkcja mogła do końca się wykonać. Czy mam wstawić pomiędzy funkcję:
setTimeout('nazwaFunkcji()', czasZwłoki);

0

Nie rob czegos takiego bo jak obliczysz czas zwloki? Na oko? Na localhoscie ajax zwroci ci dane w mgnieniu oka ale jak wrzucisz to na produkcje i obciazysz serwer to raz menu zaladuje sie w pol selundy a raz w 4 s. Wiec najlepiej podpiac sie pod callback ajaxa ktory wywola funlcje animacji jak ajax rzeczywiscie zwroci dane. Tylko zabezpiecz sie przed kilkoma kliknieciami. Wlink oraz daj usrowi znav ze ladujesz mu menu, bo jak kliknie i przyjdzie mu czekac 2 sekundy bez zadnej informacji ze cos soe laduje to dostanoe czegos. Stad moja opinia jest ze uzywanoe ajaxa do ladowania menu to bardziej fanaberia bo ile mozesz zaoszczedzic na dynamicznym menu w stosunku do ladowanoa go dynamicznie? Raz zaladowane menu niech ma i kilobajt lub dwa. A doklejanie funkcjonalnosci ajaxa i server sode zje ci moze 1kb miejsca ale w cholere czasu ;)

0

Próbowałem dłubać trochę żeby Ajax zwracał kod zamykania menu i nie bardzo to zmieniało sprawę ale w pewnym momencie przesunąłem główny (pierwotny) skrypt javascript poniżej wiersza z divem który ma być przeładowywany przez Ajaxa i nagle wszystko zaczęło działać. Czyli samo przesunięcie skryptu w dół zmieniło sposób zamykania menu. Dziwne co?
A jak powinno być według podręcznika? Skrypt powinien byc ponad czy pod elementem (np. divem) który ma być przeładowany?

0

Nie ma to znaczenia gdzie umieścisz skrypt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1