jQuery(function ($) {...});
est la version abrégée de :
jQuery(document).ready(function ($) {...});
Si vous n'attendez pas que le document
pour être prêt, les éléments sur lesquels vous lieriez les événements n'existeront pas dans le dom, et les événements ne seront pas réellement liés.
Vous pouvez également attendre que le body
pour avoir fini de charger, mais cela inclut l'attente des images, qui prennent plus de temps à charger.
La vérité est dite, vous Ne le fais pas. doivent attendre document.ready
. Vous pouvez aller de l'avant et utiliser $('#saySomething').click(...)
si vous savez que l'élément existe dans le DOM :
<button id="saySomething>Say Something!</button>
<script>
jQuery('#saySomething').click(...);
</script>
Il y a une dernière nuance à jQuery(function ($) {...});
que vous devriez connaître. Le site $
dans la fonction est utilisé pour alias jQuery
a $
ce qui vous permettra d'utiliser le $
dans la fonction sans avoir à se préoccuper des conflits avec d'autres bibliothèques (comme le prototype).
Si vous n'attendez pas document.ready
il est courant de voir un IIFE utilisé pour alias jQuery :
(function ($) {
$('#saySomething').click(...);
}(jQuery));