函数未定义,无法加载源jQuery

时间:2010-12-03 16:39:57

标签: jquery

我有这个jquery代码:

$(document).ready(function() {
            function slideSwitch() {
                var $active = $('#slideShow IMG.active');

                if ( $active.length == 0 ) $active = $('#slideShow IMG:last');

                var $next =  $active.next().length ? $active.next()
                    : $('#slideShow IMG:first');

                $active.addClass('last-active');

                $next.css({opacity: 0.0})
                    .addClass('active')
                    .animate({opacity: 1.0}, 1000, function() {
                        $active.removeClass('active last-active');
                    });
            }


                setInterval( "slideSwitch()", 5000 );

        });

并且没有定义slideSwitch()的错误?任何想法?

2 个答案:

答案 0 :(得分:5)

如果您使用带有setInterval的字符串,它将在window对象的范围内被评估,并且当您在另一个函数中本地声明该函数时,它在全局范围内不可用。

只需使用函数名称而不是带有调用函数的代码的字符串:

window.setInterval(slideSwitch, 5000);

这将传递对函数的引用而不是字符串,因此它在调用函数时并不依赖于函数的名称。

答案 1 :(得分:0)

尝试在ready事件之外声明您的功能。我不认为语法上有任何错误,但可能是它无法找到该范围内的函数。