El document.ready
se usa para ejecutar código después de que el DOM esté completamente cargado. Esto se puede utilizar para adjuntar controladores de eventos a elementos de la página por ejemplo¿Este código debe estar en un documento. Listo?
$(function(){
$('#somediv').click(function(){
});
})
<div id="somediv"> </div>
Internamente, jQuery conecta a DOMContentLoaded
y window.onload
como un repliegue.
En el caso de IE
an attempt is made to scroll the viewport over and over until successful
.
Tengo algunas preguntas, la primera de las cuales, cuando se vinculan los controladores de eventos al document
, ¿es necesario poner ese código en un document.ready
? Siempre he estado escribiendo el código de abajo sin envolverlo en un document.ready
$(document).keydown(function(e){
if (e.which == 39) {
alert("right arrow pressed");
return false;
}
});
Y como se puede ver, works. Según tengo entendido, dado que este código no se conecta con ningún elemento del documento, sino con el documento en sí, no es necesario ajustarlo en un controlador document.ready
. Otra razón por la que no lo envuelvo es porque solía hacer lo mismo en vainilla javascript, el equivalente sería el siguiente código, que también es works.
document.onkeydown= function(){
var keyCode = event.keyCode || event.which;
if (keyCode == 39) {
alert("right arrow pressed");
return false;
}
}
que he visto numerosos puestos donde la gente lo envuelven en una document.ready
, ¿hay alguna desventaja de no envolver este código en document.ready
?
También creo que esta pregunta se debe a mi falta de claridad de lo que sucede durante este tiempo cuando se está construyendo el DOM, por lo que si alguien puede explicar lo que sucede durante el período justo antes de que DOM esté listo. Para mí, el documento es listo cuando el html ha sido analizado y convertido en un árbol DOM, o hay más para él?
En resumen, aquí están mis preguntas
- Al enlazar controladores de eventos a la
document
sí mismo, es que necesario poner ese código en undocument.ready
. - ¿Hay inconvenientes en no ajustar el código en el
document.ready
? - ¿Qué secuencia de eventos tiene lugar cuando se está construyendo el documento, justo antes de que se active el
document.ready
?
Oop. No delegación NM –