En jQuery exist(ían) al menos cuatro funciones para manipular elementos del DOM cuando el mismo estuviese listo:
$( handler )
$( document ).ready( handler )
$( "document" ).ready( handler )
$( "img" ).ready( handler )
$().ready( handler )
De ellas quizá la más usada es la segunda:
$( document ).ready(function() {
// Handler for .ready() called.
});
La cual ha sido declarada obsoleta a partir de jQuery 3.
Aunque actualmente nuestro código funciona, es posible que deje de hacerlo en jQuery 4. Por tanto, se recomienda reemplazar el código anterior por este:
$(function() {
// Handler for .ready() called.
});
La noticia de obsolescencia de document.ready
se encuentra aquí:
A partir de jQuery 3.0, sólo se recomienda la primera sintaxis, o sea,
$(function() { ... });
Las otras sintaxis siguen funcionando pero están obsoletas. Esto se debe a que la selección no tiene relación con el comportamiento del método.ready ()
, que es ineficiente y puede conducir a suposiciones incorrectas sobre el comportamiento del método. Por ejemplo, la tercera sintaxis funciona con "documento" que no selecciona nada. La cuarta sintaxis espera que el documento esté listo, pero implica (incorrectamente) que espera que las imágenes estén listas.
La pregunta
Mi pregunta es con respecto al hermano mayor de $( document ).ready(function() {
, es decir, $(window).load(function() {});
¿jQuery 3 también ha cambiado con respecto a window.load
?
Si ha cambiado, ¿cuál sería la forma de actualizar el código?
Pregunta relacionada: ¿Cuál es la diferencia entre window.onload y $(document).ready()?