L' document.ready
est utilisé pour exécuter du code après le DOM est chargé complètement. Cela peut être utilisé pour joindre des gestionnaires d'événements pour des éléments sur la page.e.g
$(function(){
$('#somediv').click(function(){
});
})
<div id="somediv"> </div>
En interne, jQuery se raccorde à l' DOMContentLoaded
et window.onload
comme une solution de repli. Dans IE cas d'une tentative est faite pour faire défiler la fenêtre jusqu'à ce succès.
J'ai quelques questions, mon premier étant, lors de la liaison des gestionnaires d'événements pour l' document
lui-même, est-il nécessaire de placer ce code dans un document.ready
? J'ai toujours été écrit le code ci-dessous sans l'enveloppant dans un document.ready
$(document).keydown(function(e){
if (e.which == 39) {
alert( "right arrow pressed" );
return false;
}
});
Et comme vous pouvez le voir, il fonctionne. À mon avis, étant donné que ce code n'a pas à s'accrocher à des éléments dans le document, mais le document lui-même, il n'y a pas besoin de l'envelopper dans un document.ready
gestionnaire. Une autre raison pour laquelle je n'emballe pas, c'est parce que j'ai utilisé pour faire la même chose en javascript natif l'équivalent serait le code ci-dessous, qui a aussi des œuvres.
document.onkeydown= function(){
var keyCode = event.keyCode || event.which;
if (keyCode == 39) {
alert( "right arrow pressed" );
return false;
}
}
J'ai vu de nombreux posts où les gens de l'envelopper dans un document.ready
, est-il un inconvénient de ne pas habillage de ce code en document.ready
?
Aussi je pense que cette question vient de mon manque de clarté de ce qui se passe pendant ce temps, lorsque le DOM est en cours de construction, donc si quelqu'un peut expliquer ce qui se passe au cours de la période juste avant le DOM est prêt. Pour moi, le document est prêt quand le html a été analysée et transformée en une arborescence DOM, ou est-il de plus ?
En résumé, voici mes questions
- Lors de la liaison des gestionnaires d'événements pour l'
document
lui-même, est-il faut mettre ce code dans undocument.ready
. - Existe-il des inconvénients à ne pas enrouler le code dans l'
document.ready
? - Ce que la séquence d'événements ont lieu lorsque le document est en cours de construction, juste avant l'
document.ready
est tiré ?