jQuery: setInterval анимации? - PullRequest
0 голосов
/ 19 мая 2010

В настоящее время я пытаюсь сделать какую-то вертикальную автопрокрутку. Это мой код

$(document).ready(function() {
var reachEnd = false;
var top = 0;
function animateMargin(){
    if(top == -720){
        reachEnd = true;
    }
    if(reachEnd == false){
        $('#bslider').animate({'marginTop' : '-=240px'}, 500);
        top -=240;
    }else{
        $('#bslider').animate({'marginTop' : '0px'}, 1000);
        top = 0;
        reachEnd = false;
    }
};
marginInterval = setInterval('animateMargin()', 5000);
$('#banner').hover(function(){
    clearInterval( marginInterval );
    },
    function(){
        marginInterval = setInterval('animateMargin()', 5000);
    });
});

И это не работает - вообще.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 19 мая 2010

Вы, похоже, неправильно передаете обратный вызов function на setInterval. Попробуйте вместо этого.

setInterval( animateMargin, 5000 );
1 голос
/ 27 сентября 2011

setInterval() принимает функцию обратного вызова. Передав animateMargin() с помощью () , вы передали результат вызова функции, который является возвращаемым значением функции. Вместо этого вы должны передать саму функцию как animateMargin

...