سؤال

وكنت أقرأ وظيفة من قبل ديفيد وولش على إنشاء قائمة العفريت مع موتولز . أنا جديدة إلى حد ما موتولز، وأنا لم أفهم الطريقة التي افتتح السيناريو له. على وجه الخصوص، ما هو

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

إذا كنت وضعت وظيفة داخل ()، وجافا سكريبت سيتم تنفيذ هذه المهمة تلقائيا. بإضافة (document.id) وقال انه يمر أيضا معلمة إلى تلك الوظيفة. على سبيل المثال ..

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

هل تنبيه مرحبا العالم!

نصائح أخرى

وويعهد document.id (وظيفة التي تم إنشاؤها بواسطة موتولز) إلى متغير محلي (المسمى "$") من نطاق وظيفة غير معروفة ل.

وانها وظيفة مغلقة تنفيذ السيارات باستخدام موتولز "الوضع الآمن الدولار".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top