2010-12-03 71 views
0

我有这样的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()错误没有定义??有任何想法吗?

回答

5

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

只需使用函数名称,而不是用一串代码调用该函数:

window.setInterval(slideSwitch, 5000); 

这将传递给函数,而不是一个字符串的引用,所以它不依赖于名它被调用时的功能。

0

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