setInterval(function(){
setTimeout(function(){
$('#a').addClass('x');
},1000);
setTimeout(function(){
$('#a').removeClass('x');
},2000);
},4000);
我试图添加课程" x"到了#"#a" 1秒后& 2秒后删除课程&将整个函数重复为一个循环,每3秒执行一次。但循环只运行一次,因为setTimeout函数中的时间在3秒后没有增加。所以你可以帮我完成这个工作。
答案 0 :(得分:1)
在setTimeout和setInterval方法中设置间隔时,语法不正确:
setInterval(function(){
setTimeout(function(){
$('#a').addClass('x');
},1000);
setTimeout(function(){
$('#a').removeClass('x');
},2000);
},4000);
答案 1 :(得分:1)
您必须在括号内写下时间段,并在下面的代码中进行更正。
setInterval(function(){
setTimeout(function(){
$('#a').addClass('x');
},1000);
setTimeout(function(){
$('#a').removeClass('x');
},2000);
},4000);
<强> DEMO 强>
答案 2 :(得分:1)
你的语法不正确。此外,这可以在没有超时的情况下完成,只是为了给你一个简短的想法:
setInterval(function(){
$("#a").addClass("x").delay(1000).queue(function(next){
$(this).removeClass("x");
next();
});
},6000);
答案 3 :(得分:1)
我认为您想要将类x添加1秒并在另一秒后删除它。 您可以将间隔设置为1秒,并检查并删除元素是否有类,否则添加它。
下面的代码应该适合你的概率。如果需要保持循环计数,你可以加1秒的延迟。
setInterval( function(){
if( $('#a').hasClass('x')){
$('#a').removeClass('x');
} else {
$('#a').addClass('x');
}
},1000);