2012-04-12 3 views
0

J'ai un site ancien et en désordre et j'essaie de commencer à ranger une partie du code jQuery pour le rendre plus facile à maintenir et pour obtenir toutes mes fonctions document.ready en un seul appel . Le problème est que les pages ont chacune un ensemble différent d'inclus dont certains ont leur propre fonction .ready.Combinaison de fonctions jQuery document.ready

Ce que je pensais à faire est de mettre cela dans la page principale:

var documentReadyFunction = function() { 
    //do something 
}; 

Et ayant dans mon en-tête/fichier scripts:

jQuery(document).ready(function() { 
    if (typeof documentReadyFunction != 'undefined') { 
     documentReadyFunction(); 
    } 
}); 

Ce qui fonctionne très bien si je pouvais savoir toutes les fonctions en attente nécessaires dans un endroit, mais ce que je veux être en mesure de faire est d'ajouter plus de scripts à exécuter dans le. prêt à partir des fichiers entre les deux appels - des suggestions sur la façon dont je peux y parvenir ou une bonne idée?

Répondre

0

vous pouvez essayer de cette façon;

<script type="text/javascript" > 
$(function(){ 
    init(); 
}); 

function init(){ 
    someFunction(); 
    //other init stuff 
} 

function someFunction(){ 
    } 
</script> 

(ou) Si vous voulez avoir plusieurs document.ready vous pouvez le faire de cette façon:

D'ici: http://www.learningjquery.com/2006/09/multiple-document-ready

$(document).ready(function() { 
    // some code here 
}); 
$(document).ready(function() { 
    // other code here 
}); 
1

Je ne sais pas si vous êtes au courant de cela, mais je suis sûr que plusieurs appels à $ (document) .ready (fn) sont autorisés et qu'ils ne remplacent pas la fonction d'origine, mais l'appellent aussi. Pour plus d'informations, voir http://www.learningjquery.com/2006/09/multiple-document-ready pour plus d'informations. Notez que si l'un d'entre eux a une erreur, les fonctions suivantes ne seront pas exécutées.

+0

Je sais que vous pouvez effectuer plusieurs appels .ready, mais certaines fonctions doivent être exécutées dans un certain ordre (par exemple, le chargement paresseux d'images et l'application de jcarousel nécessitent d'être appliquées au même groupe d'images). J'espérais pouvoir les déclarer là où ils sont utilisés et ensuite les charger dans le bon ordre (au lieu d'avoir à jongler avec la page pour que leur .proche() apparaisse dans le bon sens.) - Je me demandais à propos de en quelque sorte créer un tableau de fonctions que je pousserais toujours une fonction sur le début et l'autre à la fin. –

Questions connexes