Tout d'abord, vous pouvez raccourcir ce à:
<script type="text/javascript" >
jQuery(function() {
...
});
</script>
Deuxièmement, si vous voulez que vos scripts pour exécuter lorsque la page est terminé le chargement, alors oui, vous devez les mettre dans une jQuery
/document.ready()
fonction. Vous pouvez les mettre tous dans le même bloc jQuery(function() { })
et ils seront exécutés dans l'ordre, vous n'avez pas besoin de les séparer.
Pour développer le fonctionnement des blocs function() {}
:
jQuery(/* do something */);
signifie "Sur chargement de la page, faire quelque chose". Ce "faire quelque chose" est une fonction. Vous pouvez passer directement une fonction comme ceci:
function myFunction() {
...
}
jQuery(myFunction);
Vous avez défini une fonction « myFunction
» et dit jQuery pour exécuter la charge de page. Notez que vous venez de passer la fonction elle-même à jQuery, sans ()
. Si vous écrivez jQuery(myFunction());
à la place, cela exécutera myFunction()
immédiatement, et tout ce qui est retourné par myFunction()
sera placé dans jQuery()
, et cela sera exécuté lors du chargement de la page. C'est un peu différent des langages comme PHP, puisque en PHP c'est le comportement souhaité pour tout exécuter immédiatement, en Javascript ce n'est pas forcément le cas. En PHP, vous ne pouvez pas passer la fonction elle-même, en Javascript vous pouvez. Les fonctions en Javascript agissent beaucoup plus comme des variables.
ce que vous faites habituellement est « faire une fonction à la volée » qui contient un certain bloc de code que vous voulez exécuter au plus tard:
jQuery(function() {
foo();
bar();
});
Dans ce cas, vous passez une fonction eh bien, juste que vous l'avez fait à la volée et la fonction n'a pas de nom. jQuery conservera cette fonction jusqu'au chargement de la page, moment auquel il l'exécutera. À l'intérieur de cette fonction, vous pouvez faire autant de choses que vous le souhaitez.
Je ne suis pas en désaccord avec la réutilisation, mais ce qui est gagné en utilisant l'init fonction à la place de l'appel someFunction directement dans .ready? – jfsk3
Dites que j'ai eu une fonction qui a mis en place un accordéon et plus tard dans la page c ycle j'ai chargé dans un contenu différent en utilisant ajax et nécessaire pour initialiser l'accordéon. Si j'avais bourré le code dans doc prêt, je ne pouvais pas le réutiliser. – redsquare
Il contribue également à améliorer la trace de la pile lors du débogage lorsque vous obtenez des fonctions nommées plutôt que des fonctions anonymes – redsquare