jQuery动画回调问题

时间:2011-06-12 20:40:47

标签: javascript jquery jquery-plugins nivo-slider

function thumb_wheel() {
    $("#slider .nivo-controlNav img").animate({left: '-600px'}, 14000, function(){  
        $(this).css({left:'0px'}, function(){
            thumb_wheel();
        });
    });
};

基本上,一旦动画结束,我希望它将“left”重置为0px,并再次调用自己。我尝试使用setInterval等方式以不同方式格式化...检查Google,Stack和#jQuery ......无论我尝试什么,当我添加重置时它似乎都“挂起”。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你可以在这个jsfiddle中看到一个有效的解决方案: http://jsfiddle.net/GjemU/

您的代码中存在一些语法错误,并且您尝试在.css上使用不存在的回调

答案 1 :(得分:0)

回调是在不同的范围内调用的,因此this变量指向的是与您想象的不同的对象。
解决方案是使用闭包:

function thumb_wheel() {
    var el = $("#slider .nivo-controlNav img");
    el.animate({left: '-600px'}, 14000, function(){  
         el.css({left:'0px'});
         thumb_wheel();
    });
};