qual è la differenza tra:
$(document).ready(initialize);
e
$(document).on('ready',initialize);
Per me sembrano funzionare allo stesso modo.
qual è la differenza tra:
$(document).ready(initialize);
e
$(document).on('ready',initialize);
Per me sembrano funzionare allo stesso modo.
$(document).on('ready',initialize);
non funziona se il DOM è già pronto quando il file viene eseguito.
$(document).ready()
ha una gestione speciale per questo: assicura viene sempre chiamato
Anche quest'ultimo non è correlato al contenuto dell'oggetto jQuery. Quindi attualmente '$(). Ready()' e '$ ('foo'). Ready()' sarebbe esattamente la stessa cosa. – ThiefMaster
per me sembra che le persone +1 risposte voodoo non capiscano tbh –
tl; dr:
$(document).on('ready', ...)
è obsoleto poiché non esegue callback legati dopo il DOM era completamente analizzato. Ottiene oggetto evento come primo argomento.
$().ready()
ottiene un riferimento a jQuery
come primo argomento.
$(document).on('ready',initialize);
è vincolante un gestore di eventi per ready
document
, come ci si aspetterebbe da qualsiasi altro gestore di eventi. Using this to listen to DOM ready is deprecated as of jQuery 1.8:
C'è anche
$(document).bind("ready", handler)
, deprecato come di jQuery 1.8. Ciò si comporta in modo simile al metodoready
ma se l'evento pronto è già stato attivato e si prova a.bind("ready")
il gestore associato non verrà eseguito. I gestori pronti in questo modo vengono eseguiti dopo qualsiasi vincolo dagli altri tre metodi precedenti.
Nota che ready
è un evento personalizzato e triggered by jQuery internally. Ciò significa anche che è possibile attivarlo manualmente, il che potrebbe rovinare le cose.
$(document).ready(initialize);
realtà non associare un gestore di eventi. jQuery.fn.ready
is a dedicated method per registrare i callback da eseguire quando il DOM è stato completamente analizzato. jQuery aggiunge il callback a un oggetto promessa e non importa quale selettore passi a $
.
Inoltre, il callback ottiene un riferimento all'oggetto jQuery anziché a un oggetto evento.
This part of the source mostra bene che callback registrate simili vengono gestite in modo diverso:
// If there are functions bound, to execute
readyList.resolveWith(document, [jQuery]);
// Trigger any bound ready events
if (jQuery.fn.trigger) {
jQuery(document).trigger("ready").off("ready");
}
Si usa un metodo direttamente, gli altri proxy attraverso un metodo di supporto. – Sampson