Для чего (функция ($)) в MooTools Javascript
-
05-07-2019 - |
Вопрос
Я читал пост Дэвида Уолша о создании меню спрайтов с помощью 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);
Решение
(function($){
..
})(document.id)
Если вы поместите функцию внутри (), JavaScript автоматически выполнит эту функцию. Добавляя (document.id), он также передает параметр в эту функцию. Например ..
(function(message){
alert(message);
})( 'Hello World!' );
Оповестит Hello World!
Другие советы
Он назначает document.id
(функцию, созданную MooTools) локальной переменной (с именем " $ ") области действия анонимной функции.
Это автоматически выполняемая закрытая функция, использующая Mootools «долларовый безопасный режим».
Не связан с StackOverflow