Javascript 定期重复一个函数
我试图将类“x”添加到div“#a”1s后&在2s后删除类&将整个函数作为循环重复,每3s执行一次。但是循环只工作一次,因为setTimeout函数中的时间在3s后没有增加。因此,您可以帮助我使其工作。在setTimeout和setInterval中设置间隔时语法不正确方法:Javascript 定期重复一个函数,javascript,jquery,Javascript,Jquery,我试图将类“x”添加到div“#a”1s后&在2s后删除类&将整个函数作为循环重复,每3s执行一次。但是循环只工作一次,因为setTimeout函数中的时间在3s后没有增加。因此,您可以帮助我使其工作。在setTimeout和setInterval中设置间隔时语法不正确方法: setInterval(function(){ setTimeout(function(){ $('#a').addClass('x'); },1000);
setInterval(function(){
setTimeout(function(){
$('#a').addClass('x');
},1000);
setTimeout(function(){
$('#a').removeClass('x');
},2000);
},4000);
您必须将时间段设置在括号内,并在下面的代码中更正
setInterval(function(){
setTimeout(function(){
$('#a').addClass('x');
},1000);
setTimeout(function(){
$('#a').removeClass('x');
},2000);
},4000);
您的语法不正确。此外,这也可以在没有超时的情况下完成,只是给您一个简单的想法:
setInterval(function(){
setTimeout(function(){
$('#a').addClass('x');
},1000);
setTimeout(function(){
$('#a').removeClass('x');
},2000);
},4000);
我认为您需要添加x类1秒钟,然后在另一秒钟后删除它。 您可以将间隔设置为1秒,检查并删除元素是否具有类,否则添加它 下面的代码应该适用于您的prob。如果需要保持循环计数,可以添加1秒的延迟
setInterval(function(){
$("#a").addClass("x").delay(1000).queue(function(next){
$(this).removeClass("x");
next();
});
},6000);
错误的语法可能是问题所在。我已经把它作为一个印刷错误来解决了<代码>}),1000代码>应为
},1000)代码>,等等。我在问问题时打错了,但在实际的代码中它是好的&不工作!这是可行的,但是如果我必须在1000毫秒的延迟之后将类“x”添加到另一个div“b”中,然后在3000毫秒的延迟之后将它们从每个a和b中删除,那么上述方法有效吗@很高兴它对你有用。您可以添加另一个选择器,也可以在队列函数参数中执行多个操作,确定吗
setInterval( function(){
if( $('#a').hasClass('x')){
$('#a').removeClass('x');
} else {
$('#a').addClass('x');
}
},1000);