Определение функции Jquery в карусельном скрипте - PullRequest
4 голосов
/ 20 июля 2011

У меня есть этот сценарий для изображений карусели с LOOP

$(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;
}       

});

Но я получаю эту ошибку JavaScript в Firebug:

бесполезный вызов setInterval (пропущены кавычки вокруг аргумента?) [Interrompi за ошибку квеста] var run = setInterval (rotate (), speed);

Я думаю, что это ошибка определения функции поворота!

1 Ответ

4 голосов
/ 20 июля 2011

Это означает, что вы должны написать:

 var run = setInterval(rotate, speed);   

вместо

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

, потому что вам нужно передать ссылку на функцию в setInterval, то, что вы передаете, является возвращениемзначение функции rotate ();

...