Я думаю, что вы пытаетесь получить доступ к именованной функции в области, в которой она не определена?
function animate(){
$(".block").animate({left: '+=500px'}, 2000);
$(".block").animate({left: '0px'}, 1, animate);
};
$(animate);
$(".block").mouseenter(function(){
$(".block").stop( true, false);
});
$(".block").mouseleave(function(){
animate();
});
Я создал этот пример , который может помочь вам выполнить итерациюв рабочий раствор.