MooTools JavaScriptの(function($))とは
-
05-07-2019 - |
質問
MooToolsでスプライトメニューを作成するDavid Walshの投稿を読んでいました。私は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" dollar safe mode"を使用した自動実行のクローズド関数です。
所属していません StackOverflow