Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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,我只是想知道是否可以以更好的方式运行这些函数,我的意思是我不喜欢其中的函数集合: setTimeout(function() { $(self.header_buttons_classes[0]).addClass(self.animations[15]); setTimeout(function() { $(self.header_buttons_classes[1]).addClass(self.animations[15]);

我只是想知道是否可以以更好的方式运行这些函数,我的意思是我不喜欢其中的函数集合:

setTimeout(function() {
        $(self.header_buttons_classes[0]).addClass(self.animations[15]);
        setTimeout(function() {
            $(self.header_buttons_classes[1]).addClass(self.animations[15]);
            setTimeout(function() {
                $(self.header_buttons_classes[2]).addClass(self.animations[15]);
                setTimeout(function() {
                    $(self.header_buttons_classes[3]).addClass(self.animations[15]);
                    setTimeout(function() {
                        $(self.header_buttons_classes[4]).addClass(self.animations[15]);
                        setTimeout(function() {
                            $(self.header_buttons_classes[5]).addClass(self.animations[15]);
                        }, 500);
                    }, 500);
                }, 500);
            }, 500);
        }, 500);
    }, 500);

除了setTimeout外,还有一个函数允许您每X毫秒运行一次代码。您可以将代码简化如下:

var i = 0;
var total = self.header_buttons_classes.length;
var x = setInterval(function() {
    if(i == total) {
        clearInterval(x);
    } else {
        $(self.header_buttons_classes[i]).addClass(self.animations[15]);
        i++;
    }
}, 500);

感谢@PaoloBergantino,在无限循环中运行函数时,我通常使用
setInterval()