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);
Était-ce utile?

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".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top