À quoi sert la (fonction ($)) dans Javascript de MooTools
-
05-07-2019 - |
Question
Je lisais un article de David Walsh sur la créer un menu de sprite avec MooTools . Je suis assez nouveau sur MooTools et je ne comprenais pas comment il ouvrait son script. En particulier, qu'est-ce que
(function($){
..
})(document.id)
Est-ce un type de fermeture de JS?
Voici le script complet si vous ne souhaitez pas suivre le lien:
(function($) {
window.addEvent('domready',function() {
$('nav').getElements('li').each(function(li) {
//settings
var link = li.getFirst('a');
//fix background image
if(!li.hasClass('current')) {
link.setStyle('background-image','none');
}
//utility div
var div = new Element('div',{
'class': 'nav-' + li.get('id'),
opacity: 0
}).inject(li);
//background imagery
li.addEvents({
mouseenter: function() {
div.fade('in');
},
mouseleave: function() {
div.fade('out');
},
mousedown: function() {
div.addClass('nav-' + li.get('id') + '-click');
},
mouseup: function() {
div.removeClass('nav-' + li.get('id') + '-click');
}
});
});
});
})(document.id);
La solution
(function($){
..
})(document.id)
Si vous mettez une fonction à l'intérieur de (), JavaScript exécutera automatiquement cette fonction. En ajoutant (document.id), il transmet également un paramètre à cette fonction. Par exemple ..
(function(message){
alert(message);
})( 'Hello World!' );
alerterait Hello World!
Autres conseils
Il attribue document.id
(une fonction créée par MooTools) à une variable locale (nommée "$") de la portée de la fonction anonyme.
C’est une fonction fermée à exécution automatique qui utilise Mootools "dollar safe mode".