Для чего (функция ($)) в MooTools Javascript - PullRequest
1 голос
/ 27 ноября 2009

Я читал пост Дэвида Уолша о создании спрайтового меню с помощью MooTools . Я довольно новичок в MooTools, и я не понял, как он открыл свой сценарий. В частности, что такое

(function($){
..
})(document.id)

Это тип закрытия JS?

Вот полный скрипт, если вы не хотите переходить по ссылке:

(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);

Ответы [ 3 ]

5 голосов
/ 27 ноября 2009
(function($){
..
})(document.id)

Если вы поместите функцию внутри (), JavaScript автоматически выполнит эту функцию. Добавляя (document.id), он также передает параметр в эту функцию. Например ..

(function(message){
    alert(message);
})( 'Hello World!' );

Оповестит Привет, мир!

1 голос
/ 27 ноября 2009

Присваивает document.id (функция, созданная MooTools) локальной переменной (с именем "$") области действия анонимной функции.

0 голосов
/ 03 декабря 2009

Это автоматически выполняемая закрытая функция, использующая Mootools «долларовый безопасный режим».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...