The ready event occurs after the HTML document has been loaded, while the onload event occurs later, when all content (e.g. images) also has been loaded.
Dokument zostaje załadowany, ale nie oznacza to że załadowane zostają jego elementy. Stąd może być sytuacja, gdzie skrypt próbuje się odwołać do elementu który nie w pełni jest gotowy. spróbuj zamienić to na onload
Główne punkty dotyczące $ (document) .ready ():
Nie będzie czekać na załadowanie obrazów. Służy do wykonywania JavaScript, gdy DOM jest całkowicie załadowany. Tutaj umieść programy obsługi zdarzeń. Może być używany wielokrotnie. Zastąp $ jQuery, gdy pojawi się komunikat „$ nie jest zdefiniowany”. Nieużywane, jeśli chcesz manipulować obrazami. Zamiast tego użyj $ (window) .load ().