7
votes

Quel événement JQuery est appelé juste après $ (document) .Readady ()?

J'ai beaucoup de HTML généré sur $ (document) .Readady () . J'ai un simple système de fenêtre. Mais non seulement il est généré sur $ (document) .Readady () - aussi certains éléments HTML (différents fichiers JS mettent des choses dans $ (document) .Readady () ) . Je veux que mon système de fenêtre soit généré après $ (document) .Ready () est appelé. Comment puis-je gérer une fonction à appeler après tout le code enregistré dans $ (document) .Ready () est terminé?


2 commentaires

C'est beaucoup de $ (document) .Ready ()! ;-)


Donc, vous voulez un .ready () pour votre document.Ready ()? Ce n'est pas la façon dont JQuery fonctionne - contrairement à quelque chose comme WordPress sur PHP, en raison du modèle JavaScript basé sur l'événement JQuery n'aurait aucun moyen de «savoir» que tout le code que vous avez mis dans les fonctions prêtes () est terminé. Donc, il n'y a pas d'événement appelé après le document.Ready (). Vous devrez créer et attendre que des événements se terminent par vous-même ou utilisez la fenêtre.Load ().


8 Réponses :


0
votes

Il n'y a rien après cette fonction, donc si vous avez des chargeurs AJAX, ne pensez que vous pouvez faire est de vous attendre, puis de commencer à rendu

Modifier mais je me demande pourquoi vous ne structurez pas votre code pour éliminer cela.


0 commentaires

9
votes

Il y a un autre événement qui est tiré plus tard. C'est $ (fenêtre) .charger (); Ceci est tiré après que toutes les ressources soient chargées.

Mais vous voulez peut-être ceci: xxx

de cette façon, vous pouvez séparer votre code dans les fonctions.


4 commentaires

Remarque: fenêtre.Load Fires lorsque toutes les ressources sont chargées, pas seulement des images


Eh bien cela signifierait que je devrais appeler loadwindowsystem () dans chaque document où j'utilise $ (document) .Ready ("") pour générer HTML ... et aussi la charge .js sera tellement dire important ...


Merci Didier, je l'ai changé dans ma réponse.


@mywalljson Si vous souhaitez avoir la même fonctionnalité dans plusieurs documents, utilisez simplement un fichier .js et l'inclure à partir de divers documents.



0
votes

$ (document) .Ready () est appelé juste après la fin du chargement de la DOM. PAGELOAD () est appelé Suivant sur une minuterie 0, mais méfiez-vous, il est exécuté après chaque publication partielle.

EDIT: Ajout de la lettre latérale - Cela ne comptera que si vous utilisez ASP.NET, la fonctionnalité de pagéload mentionnée est séparée de JQuery. Voir plus d'infos ici


0 commentaires

3
votes

Si vous voulez quelque chose à tirer juste après tout $ (document) .Ready () code> appels, vous pouvez le mettre une fois n'importe où dans votre page:

$(document).ready(function() {
    setTimeout(function() {
        // call your code here that you want to run after all $(document).ready() calls have run
    }, 1);
});


0 commentaires

6
votes

Je ne préconise généralement pas en utilisant Settimeout code> strong>, mais vous pouvez construire sur la réponse de @ jfien00 pour créer une approche plus abstraite:

$(document).ready(function() {
    setTimeout(function() {
        $(document).trigger('afterready');
    }, 1);
});

$(document).bind('afterready', function() {
    // call your code here that you want to run after all $(document).ready() calls have run
});


0 commentaires

14
votes
  $(window).load(function(){
   //some code after ready 
  });

1 commentaires

Il y a beaucoup de discussions ici qui se promènent autour de la réponse. C'est la réponse exacte à la question posée.



0
votes

En ajoutant une autre fonction de gestionnaire, le document est prêt, le Le gestionnaire sera presque certainement le dernier dans la file d'attente d'événement prêt. Vous donnant efficacement une fonction de maîtrise immédiate instantanée "POST".

$(document).ready(function() {
    $(document).ready(function() {
        // code to run "after" ready 
    });
});


0 commentaires

0
votes

Vous pouvez utiliser

$(window).load(function(){
   alert("Window Loaded");
}


0 commentaires