Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定期重复一个函数_Javascript_Jquery - Fatal编程技术网

Javascript 定期重复一个函数

Javascript 定期重复一个函数,javascript,jquery,Javascript,Jquery,我试图将类“x”添加到div“#a”1s后&在2s后删除类&将整个函数作为循环重复,每3s执行一次。但是循环只工作一次,因为setTimeout函数中的时间在3s后没有增加。因此,您可以帮助我使其工作。在setTimeout和setInterval中设置间隔时语法不正确方法: setInterval(function(){ setTimeout(function(){ $('#a').addClass('x'); },1000);

我试图将类“x”添加到div“#a”1s后&在2s后删除类&将整个函数作为循环重复,每3s执行一次。但是循环只工作一次,因为setTimeout函数中的时间在3s后没有增加。因此,您可以帮助我使其工作。

在setTimeout和setInterval中设置间隔时语法不正确方法:

   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);