Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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
Jquery 一个接一个地添加类,每个类在一秒钟后添加_Jquery_Html_Arrays - Fatal编程技术网

Jquery 一个接一个地添加类,每个类在一秒钟后添加

Jquery 一个接一个地添加类,每个类在一秒钟后添加,jquery,html,arrays,Jquery,Html,Arrays,我的目标是:一个接一个地添加类[test0 test1 test2],直到10,每个类在一秒钟后添加 $('.rating-block').AddClass('test0 test1 test2 ... test10' ); 我的代码[只是尝试使用此代码,不再了解此代码] for ( var i = 0; i < 11 ; i = i + 1 ) { setTimeout(function(){ $( ".ratin

我的目标是:一个接一个地添加类[test0 test1 test2],直到10,每个类在一秒钟后添加

$('.rating-block').AddClass('test0 test1 test2 ... test10' );
我的代码[只是尝试使用此代码,不再了解此代码]

       for ( var i = 0; i < 11 ; i = i + 1 ) {
             setTimeout(function(){
                $( ".rating-block" ).addClass('test' +i);
                console.log(  i );
            },1000);
       }
for(变量i=0;i<11;i=i+1){
setTimeout(函数(){
$(“.rating block”).addClass('test'+i);
控制台日志(i);
},1000);
}
最好在此处使用:

因为使用
setTimeout
将迫使您实现承诺功能或添加大约10个回调,而您的代码将很难看

编辑:

若要反转,只需扩展上面的代码并添加另一个setInterval即可

if( i == 11 ) {
    clearInterval( interval );
    i = 10;
    interval = setInterval(function(){
        if( i == 0 ) {
            clearInterval( interval );
        }
        $( ".rating-block" ).removeClass('test' +i);
        i--;
    },1000);
}

甚至可以将这些代码作为函数并进行循环(从0添加到10,然后从10删除到0,依此类推):

函数addClasses(){
对于(变量i=0;i<11;i=i+1){
(职能(j){
setTimeout(函数(){
$(“.rating block”).addClass('test'+j);
控制台日志(j);
},i*1000);
}(i) );
}
setTimeout(函数(){
移除类();
}, 10 * 1000);
}
函数removeClasses(){
对于(变量i=10;i>=0;i=i-1){
(职能(j){
setTimeout(函数(){
$(“.rating block”).removeClass('test'+j);
控制台日志(j);
}(11-i)*1000);
}(i) );
}
setTimeout(函数(){
addClasses();
}, 10 * 1000);
}
addClasses();

.

这将在1秒后立即设置所有类,而不是每秒一个一个。哦,我看到您现在使用了
I
变量,您是对的。你的解决方案也可以。我们可以在第十节课后倒转(取消课程)吗@ROX@ShibinRagh是的,这是可能的,检查更新的答案,你也可以使它成为一个循环…我们可以在第十节课后反转(删除类)吗@安提拉特
if( i == 11 ) {
    clearInterval( interval );
    i = 10;
    interval = setInterval(function(){
        if( i == 0 ) {
            clearInterval( interval );
        }
        $( ".rating-block" ).removeClass('test' +i);
        i--;
    },1000);
}
for ( var i = 0; i < 11 ; i = i + 1 ) {
    (function (j) {
        setTimeout(function () {
            $( ".rating-block" ).addClass('test' + j);
            console.log( j );
        }, i * 1000);
    }(i));
}
for ( var i = 10; i >= 0 ; i = i - 1 ) {
    (function (j) {
        setTimeout(function () {
            $( ".rating-block" ).removeClass('test' + j);
            console.log( j );
        }, (11 - i) * 1000);
    }(i));
}
function addClasses() {
    for ( var i = 0; i < 11 ; i = i + 1 ) {
        (function (j) {
            setTimeout(function () {
                $( ".rating-block" ).addClass('test' + j);
                console.log( j );
            }, i * 1000);
        }(i));
    }

    setTimeout(function () {
        removeClasses();
    }, 10 * 1000);
}

function removeClasses() {
    for ( var i = 10; i >= 0 ; i = i - 1 ) {
        (function (j) {
            setTimeout(function () {
                $( ".rating-block" ).removeClass('test' + j);
                console.log( j );
            }, (11 - i) * 1000);
        }(i));
    }

    setTimeout(function () {
        addClasses();
    }, 10 * 1000);
}

addClasses();