Я пытаюсь сгруппировать некоторые функции верхнего уровня внутри закрытия (чтобы избежать загрязнения глобального пространства имен), но я не совсем , чтобы он работал.Закрытие/область действия JavaScript/jQuery
Во-первых, все JS работает вне моей анонимной функции, но как только я положил в анонимную функцию, я получаю сообщение об ошибке «crossfade is not defined». Кто-нибудь видит что-то совершенно очевидное, что я отсутствую ?
Я не совсем понимаю, почему setInterval/crossfade работает вне анонимной функции, но не внутри. Что-нибудь внутри start() должно быть в состоянии видеть vars/функции снаружи start(), и все должно быть защищено в закрытии, созданном анонимной функцией верхнего уровня? Я не пытаюсь получить к нему доступ в пределах crossfade(), я всего лишь , пытаясь его выполнить.
(function($) {
//vars up here that internal functions can access
//also using some jquery inside here, so using $
function crossfade() {
//body here
}
//other functions
function start() {
//body here
cInterval = setInterval('crossfade()', 5000);
}
})(jQuery);
Спасибо, что это работает для меня. –