5

この関数をより良い方法で実行できるかどうか疑問に思っていました。つまり、そこにある関数のコレクションが気に入らないということです。

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

1 に答える 1

6

setTimeoutに加えて、Xミリ秒ごとにコードを実行できるsetInterval関数もあります。次のようにコードを簡略化できます。

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);
于 2012-06-05T14:40:20.597 に答える