轮播脚本中的Jquery函数定义

我有一个带有LOOP的Carousel图像的脚本

$(document).ready(function() { //rotation speed and timer var speed = 5000; var run = setInterval(rotate(), speed); //grab the width and calculate left value var item_width = $('#slides li').outerWidth(); var left_value = item_width * (-1); //move the last item before first item, just in case user click prev button $('#slides li:first').before($('#slides li:last')); //set the default item to the correct position $('#slides ul').css({'left' : left_value}); //if user clicked on next button function rotate() { //get the right position var left_indent = parseInt($('#slides ul').css('left')) - item_width; //slide the item $('#slides ul').animate({'left' : left_indent}, 3000, function () { //move the first item and put it as last item $('#slides li:last').after($('#slides li:first')); //set the default item to correct position $('#slides ul').css({'left' : left_value}); }); //cancel the link behavior return false; } 

});

但我在firebug中收到此javascript错误:

无用的setInterval调用(参数周围缺少引号?)[Interrompi per questo errore] var run = setInterval(rotate(),speed);

我认为这是旋转function定义的错误!

这意味着你应该写:

  var run = setInterval(rotate, speed); 

代替

  var run = setInterval(rotate(), speed); 

因为你需要将函数的引用传递给setInterval,你传递的是函数rotate()的返回值;