我想知道我们是否能做得比将setTimeout多次嵌套以使一堆元素动画化那样更优化,比如这件丑陋的事情:

    setTimeout(function () {
        $('div[data-order="0"]').parent().removeClass('flipped');
        setTimeout(function () {
            $('div[data-order="1"]').parent().removeClass('flipped');
            setTimeout(function () {
               $('div[data-order="2"]').parent().removeClass('flipped');
            }, 75);
        }, 75);
    }, 75);

最佳答案

您可以使用一个函数:

function flipByOrder(order) {
    $('div[data-order="' + order + '"]').parent().removeClass('flipped');
    if (order <= 1) {
        setTimeout(function() { flipByOrder(order + 1); }, 75);
    }
}
flipByOrder(0);


您也可以使用setInterval

var order = 0;
var interval = setInterval(function() {
    $('div[data-order="' + order + '"]').parent().removeClass('flipped');
    order++;
    if (order > 2) clearInterval(interval);
}, 75);

关于javascript - setTimeout-section替代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25515111/

10-12 12:26
查看更多