2015-07-03 59 views
0

这是我的代码jQuery的延迟处理错误

$(document).ready(function(){ 
function margin(){ 
    $('.logo').animate({ marginLeft : "150px"}, 1500).delay(4000).animate({ marginLeft : "350px"}, 1500, function() { 
     delay(4000).margin(); 
    }); 
} 
margin(); 
}); 

我想我的代码无限循环,但它不工作。 Firebug的控制台说:'未处理的错误:未定义的变量:延迟'(第四行)。我错过了什么?

回答

1

delay出现undefined?尝试用$.fn.delay代替调用undefineddelay函数;利用.queue()调用margin递归

$(document).ready(function() { 
 
    function margin() { 
 
    $(".logo").animate({ 
 
     marginLeft: "150px" 
 
     }, 1500).delay(4000) 
 
     .animate({ 
 
     marginLeft: "350px" 
 
     }, 1500, function() { 
 
     $(this).delay(4000, "margin") 
 
      .queue("margin", margin).dequeue("margin"); 
 
     }); 
 
    } 
 
    margin(); 
 
});
.logo { 
 
    background: olive; 
 
    width: 50px; 
 
    height: 50px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 
<div class="logo">abc</div>

+0

感谢的人,它的工作吧! –