seweryn
25.06.2013, 14:34:20
Witam,
tworzę formularz, który posiada duży funkcji w javascript.
Do jednego z selectów przypisałem aż 4 funkcje na onchange. W pewnym momencie zauważyłem, że wykonuję się tylko pierwsze 2 z 4.
Przestawiałem te funkcje kolejnością i faktycznie zawsze wykonują się te pierwsze 2.
Kiedy przerzuciłem 'największą funkcję' do onBlur wszytskie funkcje zaczęły się wykonywać.
Czy javascript ma jakąś ograniczoną pamięć lub coś w tym stylu?
Z góry dziękuję za pomoc.
Sephirus
25.06.2013, 14:41:50
Krótko: nie ma
Ale zależy jak dodajesz eventy pod onchange i do tego co te funkcje robią. JS ma metody addEventListener oraz attachEvent (IE), które dodają eventy do stosu. Wszystkie są wykonywane ale w pewnej kolejności - kolejności dodania. Jesli któraś z funkcji zablokuje wykonywanie kolejnych, zwróci false itp. to reszta może się nie wykonać.
seweryn
25.06.2013, 14:50:30
Dziękuję, już odkryłem błąd.
Funkcja nie miała mozliwości pobrać wszystkich zmiennych do póki pola z dolnej częsci formularza nie zostały wybrane.
W tym momencie JS przerywał pracę i nie wykonywał funkcji za funkcją z brakiem danych.
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.