2010-08-23 6 views
3

J'ai un JavaScript qui génère des blocs HTML. Ce script est parfois appelé quelque part en cours d'exécution, et parfois avant le chargement du document. Je veux un script capable de dire si le document est prêt. Si c'est le cas, générez le code HTML, sinon, ajoutez une fonction document.ready(). Quel est le meilleur moyen pour jQuery de savoir si un document a été chargé?comment savez-vous si le document est prêt

+2

Il y a déjà eu beaucoup de suggestions, mais l'utilisation de '$ (document) .ready()' est exactement ce que vous voulez. Dans les coulisses, lorsque cette fonction est appelée, jQuery vérifie si le DOM est prêt. Si c'est le cas, il exécute simplement la fonction contenue. Si ce n'est pas le cas, cela ajoute l'événement prêt. –

Répondre

1

Il est sûr de toujours enrouler ce code de génération HTML dans $ (document) .ready(). Si le document est déjà prêt, un rappel $ (document) .ready() nouvellement enregistré s'exécutera immédiatement.

4

Utilisez l'événement load:

$(window).load(function(){ 
    // your code... 
}); 

Avec événement load, les DOM, les images, les cadres et toutes autres ressources externes sont chargées dans le document.

+0

Vous n'en avez même pas besoin. Vous pouvez simplement faire '$ (function() {...});' – casablanca

+0

'$ (document) .load()' ne fonctionne pas. Testez-le: http://jsfiddle.net/kjZrn/ Vous auriez besoin de $ (window) .load() 'ou' $ (document) .ready() '(ou un raccourci équivalent). – user113716

7
$(document).ready(
    function() { 
     //code to execute once the page is loaded 
    } 
); 
+0

+1 C'est une bonne solution, car il ne semble pas que l'OP craigne que les images soient entièrement téléchargées. – user113716

2

Vous pouvez utiliser l'événement prêt à exécuter les choses après le DOM est chargé

$(document).ready(function() { 
    // your function 
}); 

ou l'événement de chargement à attendre absolument tout est chargé

$(document).load(function() { 
    // your function 
}); 

À moins que vous sachiez que vous devez utiliser l'événement de chargement, j'utiliserais celui qui est prêt (que je elieve est l'événement DOMContentLoaded).

0
$(function() { 
    // document has loaded at this point 
}); 
Questions connexes