Non c'è evento generato quando un elemento DOM arbitraria, ad esempio un <div>
diventa pronto. Le immagini hanno il loro evento load
per dirti quando i dati dell'immagine sono stati caricati e sono stati renderizzati e alcuni altri tipi speciali di elementi hanno un evento. Ma gli elementi DOM regolari non hanno un tale evento.
Se si desidera che il codice javascript venga eseguito non appena un elemento DOM arbitrario è pronto, l'unico modo per farlo è inserire una chiamata di funzione in uno script in linea subito dopo quell'elemento DOM. A quel punto, l'elemento DOM sarà pronto, ma il resto del DOM potrebbe non essere ancora pronto. In caso contrario, lo script può essere inserito alla fine del documento o lo script può essere attivato quando l'intero documento è pronto.
Ecco gli eventi esistenti di carico espresse in forma jQuery (questi può essere fatto in pianura JS troppo):
// when a particular image has finished loading the image data
$("#myImage").load(fn);
// when all elements in the document are loaded and ready for manipulation
$(document).ready(fn);
// when the DOM and all dynamically loaded resources such as images are ready
$(window).load(fn);
In jQuery, è anche possibile caricare dinamicamente i contenuti e una notifica quando questo contenuto è stato caricato mediante il metodo .load()
simili:
$("#result").load("ajax/test.html", function() {
alert("Load was performed.");
});
Internamente, questo non solo una chiamata AJAX per recuperare i dati e poi chiama la callback dopo i dati sono stati recuperati da ajax e poi inserito nel documento. Non è un evento nativo.
Se si dispone di un codice che viene dinamicamente caricando gli elementi per il DOM e volete sapere quando questi elementi DOM sono presenti, quindi il modo migliore per sapere quando sono pronti è quello di avere il codice che aggiunge loro al DOM creano una sorta di evento per dirti quando è pronto. Questo evita che la batteria sprechi i sondaggi cercando di scoprire se l'elemento si trova ora nel DOM.
È anche possibile utilizzare DOM MutationObserver per verificare quando al DOM sono stati apportati tipi specifici di modifiche.
+1 per spiegazioni più dettagliate –
Aggiungere informazioni su DOM MutationObserver per visualizzare le modifiche al DOM. – jfriend00