我有这个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()的错误?任何想法?
答案 0 :(得分:5)
如果您使用带有setInterval
的字符串,它将在window
对象的范围内被评估,并且当您在另一个函数中本地声明该函数时,它在全局范围内不可用。
只需使用函数名称而不是带有调用函数的代码的字符串:
window.setInterval(slideSwitch, 5000);
这将传递对函数的引用而不是字符串,因此它在调用函数时并不依赖于函数的名称。
答案 1 :(得分:0)
尝试在ready事件之外声明您的功能。我不认为语法上有任何错误,但可能是它无法找到该范围内的函数。