31 votes

Meilleures pratiques pour déclarer des fonctions à l'intérieur de la fonction jquery ready

Je n'ai pas trouvé une bonne référence pour déclarer mes propres fonctions à l'intérieur du jquery.ready(function(){});

Je veux dire de sorte qu'ils sont à l'intérieur du même champ d'application du prêt à la fermeture. Je ne veux pas encombrer le mondial js espace de noms donc je ne veux pas déclarés à l'extérieur du prêt de fermeture, car ils seront spécifiques à juste le code à l'intérieur.

Alors, comment fait-on déclarer une fonction de ce genre...et je ne suis pas référence à une coutume jquery extension de la méthode/fonction...juste un 'ol fonction qui fait quelque chose de trivial dire comme: fonction multiple( a, b ){ return a * b; }

Je veux suivre le jquery recommandation et de la fonction syntaxe de déclaration. Je peux le faire fonctionner en déclarant simplement une fonction comme le multiplier l'un au-dessus...mais il ne semble pas correct pour moi pour une raison quelconque, donc je suppose que j'ai juste besoin de quelques conseils.

55voto

jonstjohn Points 23326

Je pense que vous seriez d'accord juste de déclarer la fonction à l'intérieur de la fermeture ready (), mais ici, vous pouvez être un peu plus explicite sur la portée locale:

 jQuery.ready(function() {

     var myFunc = function() {

           // do some stuff here

     };

     myFunc();


});
 

9voto

matt b Points 73770

Cela peut sembler simple, mais vous venez de ... déclarer la fonction. Javascript permet aux fonctions d'avoir des fonctions internes.

 $(document).ready( function() {
   alert("hello! document is ready!");

   function multiply(a, b) {
       return a * b;
   }

   alert("3 times 5 is " + multiply(3, 5));
});
 

7voto

Glavić Points 13021

J'ai une fonction StartUp et je l'utilise comme imprimé ci-dessous:

 function StartUp(runnable)
{
    $(document).ready(runnable.run);
}

var ExternalLinks =
{
    run: function()
    {
    	$('a[rel="external"]').bind('click', ExternalLinks.click);
    },
    click: function(event)
    {
    	open(this.href);
    	return false;
    }
}
StartUp(ExternalLinks);

var ConfirmLinks =
{
    run: function()
    {
    	$('a.confirm').bind('click', ConfirmLinks.click);
    },
    click: function(event)
    {
    	if (!confirm(this.title)) {
    		return false;
    	}
    }
}
StartUp(ConfirmLinks);
 

Mes sites Web sont modulaires, donc chaque module a N actions et chaque action peut avoir un fichier .js, donc j'écris simplement la fonction et l'appelle avec StartUp (... functionName ...)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X