2010-04-14 12 views
7

Jestem nowicjuszem w jQuery, próbuję się tego nauczyć od kilku ostatnich dni. W moim biurze jest niewielu programistów JavaScript i pracują głównie z jQuery dla wszystkich ich potrzeb i kiedy tylko mam i rozmawiam z nimi, aby lepiej zrozumieć, jak działa jQuery i najpierw mówią, że na $(document).(ready) robisz to i na $(document).(ready) to robisz.

Moje główne pytanie brzmi: Co to jest $(document).(ready) i jak to naprawdę działa?

Wszelkie dane wejściowe będą bardzo cenne.

Aktualizacja W przyjętych odpowiedzi komentować nie wspominając o Kiedy DOM jest gotowy, więc co to naprawdę oznacza?

+0

Sprawdź odpowiedź od Felix King. – Pointy

Odpowiedz

9

$ (dokument) .ready() uruchamia się, gdy DOM jest całkowicie załadowany i gotowy do manipulacji. Zapobiega to wystrzeleniu twojego kodu, zanim istnieją obiekty, przeciwko którym będzie działać. $ (Document) .ready() jest najbardziej gadatliwy wersja z niego, i może zostać zastąpiony się z żadnym z tych stwierdzeń ...

$(document).ready(handler) 
$().ready(handler) (this is not recommended) 
$(handler) 
$(document).bind("ready", handler) 

Zobacz here do dokumentacji.

+1

Aby było jasne: '$ (document) .ready()' uruchamia się, gdy * DOM * jest całkowicie załadowany, niekoniecznie po załadowaniu * strony *. To wydarzenie może wystrzelić, zanim pliki takie jak obrazy zostaną w pełni pobrane. – Tim

+0

@Tim - popraw, zaktualizuję moją odpowiedź, aby wyjaśnić. –

+1

FYI, jak z jQuery 1.4, '$()' zwraca pusty zestaw jQuery, więc nie jest to równoważne '$ (dokument)'. Twój drugi przykład nie zadziała w wersji 1.4. – kevingessner

1

$ (dokument). (Gotowy) jest wywoływany po załadowaniu wszystkich elementów strony. Pozwala to na pewną konfigurację funkcji obsługi zdarzeń, ponieważ wiemy, że wszystkie elementy istnieją.

1

Dokument gotowy do zdarzenia wywołanego przez jQuery/JavaScript , gdy cały dokument HTML i wszystkie jego elementy są załadowane i gotowy do manipulacji.

Sposób wczytywania elementów przez przeglądarkę polega na renderowaniu ich podczas pobierania strony. Jeśli masz jakiś skrypt, który działa przedwcześnie, masz ryzyko, że ten skrypt się nie powiedzie.

Używasz dokumentu Gotowy, aby upewnić się, że działa on tylko wtedy, gdy cała strona jest gotowa.

Oto przykład ... To pisz „cześć”, gdy cały dokument odbywa się ładowanie w przeglądarce:

$(document).ready(function(){ 
    alert('hello'); 
}); 
3

myślę, że najlepiej jest opisana w tutorial:

Kod uruchomieniowy na gotowym dokumencie

Pierwszą rzeczą, którą większość programistów JavaScript wykonuje, jest dodanie do swojego programu kodu, milar do tego:

window.onload = function(){ alert("welcome"); } 

Wewnątrz którego znajduje się kod, który ma zostać uruchomiony zaraz po załadowaniu strony. Problematycznie jednak kod JavaScript nie jest uruchamiany, dopóki wszystkie obrazy nie zostaną zakończone, pobierając (dotyczy to również banerów reklamowych). Powodem używania window.onload jest to, że "dokument" HTML jeszcze się nie załadował, kiedy po raz pierwszy spróbujesz uruchomić swój kod.

Aby obejść oba problemy, jQuery ma proste stwierdzenie, że sprawdza dokumenty i czeka, aż będzie gotowy do manipulować, znany jako gotowy imprezy:

$(document).ready(function(){ 
    // Your code here 
}); 

albo w skrócie, gwarantuje, że każdy element dokumentu jest załadowany, aby można było uzyskać do niego dostęp, ale nie czeka, aż obrazy zostaną załadowane.

1

DOM oznacza Document Object Model. Możesz przeczytać więcej na ten temat here. Więc

$ (document) .ready()

wypala raz DOM jest całkowicie załadowany przez browser.Since JavaScript jest wykonywany w przeglądarce, chcielibyśmy tylko raz, aby rozpocząć realizację przeglądarka wie o każdym element na stronie, na której chcemy wykonać skrypt.

0

to podobnie jak imprezy window.onload

poza nim doza czekać wszystkie dane binarne taki obraz do zakończenia ładowania

ta jest niezbędna, jeśli u chcą pracować z DOM, bo u doza chcą swój kod dostęp do elementu dom, który istnieje

Powiązane problemy