jQuery在延迟之后添加一个类然后延迟和另一个类

时间:2015-06-07 20:05:54

标签: jquery css

如何在延迟和延迟之后添加一个类和另一个类?

我似乎只能添加一个。

MainActivity

2 个答案:

答案 0 :(得分:3)

您遇到的问题很可能就是您错误地使用了jQuery的延迟功能。请查看此SO问题以供参考:.delay() and .setTimeout()

由于我们不使用动画或在现有的jQuery队列中,因此在大多数情况下您应该使用setTimeout

$(document).ready(function() {
    window.setTimeout(function() {
        $(".websites-container").addClass("active");
    }, 5000);

    window.setTimeout(function() {
        $(".websites-container").addClass("gone");
    }, 8000);
});

答案 1 :(得分:3)

您需要在.queue()回调中调用.dequeue(),否则队列中的以下项目永远不会被执行。



$(document).ready(function() {
    $(".websites-container").delay(1000).queue(function() {
            // I'm impatient. I shortened the times.
            $(this).addClass("active").dequeue();
    }).delay(2000).queue(function() {
            $(this).addClass("gone");
    });
});

.active {font-weight: bold}
.gone {color:red}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="websites-container">abc</div>
&#13;
&#13;
&#13;

(这几乎是由@adeneo解决的,但在回调中放置了dequeue除外。)