J'essaie de regrouper certaines fonctions de haut niveau existantes à l'intérieur d'une fermeture (pour éviter de polluer l'espace de noms global) mais je ne suis pas tout à fait de le faire fonctionner. Tout d'abord, tous les JS fonctionne en dehors de ma fonction anonyme, mais une fois que je mets dans la fonction anonyme, j'obtiens une erreur de "crossfade n'est pas ". Est-ce que quelqu'un voit quelque chose de complètement évident que je suis manquant?Fermeture/portée JavaScript/jQuery
Je ne comprends pas pourquoi le setInterval/crossfade fonctionne en dehors de la fonction anonyme mais pas à l'intérieur. Quelque chose dans start() devrait être en mesure de voir vars/fonctions en dehors de start() et il devrait tous être protégé dans la fermeture créée par la fonction anonyme de niveau supérieur? Je n'essaie pas d'accéder à quelque chose dans crossfade(), je suis juste en essayant de l'exécuter.
(function($) {
//vars up here that internal functions can access
//also using some jquery inside here, so using $
function crossfade() {
//body here
}
//other functions
function start() {
//body here
cInterval = setInterval('crossfade()', 5000);
}
})(jQuery);
Merci beaucoup cela fonctionne pour moi. –