超时功能和jquery出现故障

Trouble with Timeout function and jquery

本文关键字:故障 jquery 功能 超时      更新时间:2023-09-26

你好,在jquery函数中调用goon()时,我收到了以下Javascript错误。我以为它是有定义的。。。但显然不是。。。?!为什么不呢?:

没有定义goon var timeout=setTimeout('goon()',3000)

    $('.rs-slideshow').stop().fadeOut('fast',function(){
        $('html,body').stop().animate({
            scrollLeft:$offset
        }, 1000, function(){
                function goon(){
                    $('.rs-slideshow').fadeIn('fast');
                    $('#slideshow').clearQueue().rsfSlideshow('startShow');
                }
                var timeout= setTimeout('goon()', 3000);
        });
    }); 

您正在将一个字符串(由' s分隔的'goon()')传递给您的setTimeout,该字符串在全局作用域中求值。虽然该函数在全局范围内不可访问,但对于动画回调,它只是本地,因此找不到它。

直接传递引用:

var timeout= setTimeout(goon, 3000);

注意,我还省略了(),因为这不会传递函数,而是执行函数并传递其返回值。