Spotkałem się z sytuacją która mnie lekko zdziwiła. Postaram się pokrótce ją opisać.
Skrypty JS zawsze wciskam w sekcję <head> dokumentu. Po zapoznaniu się ze stylem obiektowym w JS stało się to o tyle proste że całą funkcjonalność przerzucam na obiekty ( powiedzmy tworzę obiekt menu, a w nim umieszczam metody zajmujące się zdarzeniami ). Natomiast ich inicjalizacją zajmuje się osobny plik JS w którym umieszczam kod za to odpowiedzialny ( na przykład tworzenie obiektu i wykonanie metod przypisania zdarzenia ).
Teraz do sedna sprawy. W jQuery istnieje odpowiednik window.onload czyli funkcja ready() odpowiedzialna ona jest za wykonanie określonych zadań po załadowaniu dokumentu. Dzisiaj 2 godziny spędziłem na debugowaniu skryptu który nie miał dostępu do wysokości elementu DOM, bo ten nie był jeszcze do końca załadowany. Kiedy przeniosłem inicjalizację za miejsce ( pod ) w który ten element się znajdował, wszystko zaczęło działać.
Na razie prosiłbym was o to żebyście spróbowali mi jakoś wyjaśnić jak to się mogło stać że $("document").ready(function(){ kod }); wykonywał się kiedy właściwość height rzeczonego elementu DOM nie była jeszcze zdefiniowana. Jeśli nie będziecie w stanie to uproszczę kod i go tutaj wkleję.
Z góry dzięki za zainteresowanie tematem.
Pozdrawiam.