尝试在每个循环的jquery中添加具有延迟的类

时间:2014-09-28 15:49:45

标签: javascript jquery css

我试图通过Javascript / jQuery一次尝试淡入一些元素,但我根本无法获得任何工作。

我已尝试过各种解决方案'在StackOverflow上有这个问题,没有任何作用。要么1)我试图一次动画所有动画的元素,2)根本没有动画,或3)我得到一个Javascript错误。看看我目前的代码:

        $('.tagline').each(function(i, e) {

                setTimeout(function(i, e) {
                    e.addClass('animated');
                }, 500 * i);
        });

上面的代码告诉我e is undefined。我做错了什么?

3 个答案:

答案 0 :(得分:4)

setTimeout回调不接受任何参数,您将使用i值覆盖每个回调的eundefined参数:

$('.tagline').each(function(i, e) {
     setTimeout(function() {
         $(e).addClass('animated');
     }, 500 * i);
});

答案 1 :(得分:1)

如果你想控制自己的推子,你总是可以采用数据方法。如果你想要一些东西可以依赖,你可以随时添加一个条件,如果为null。 http://jsfiddle.net/rg45yduh/3/

$(function(){
    $('.tagline').each(function(){
       delay=$(this).data('time-delay');
       fadeout= $(this).data('fade-out');              
       $(this).delay(delay).fadeIn(fadeout);
    })
})

答案 2 :(得分:0)

你可以做这样的事情http://jsfiddle.net/rg45yduh/

$('.tagline').each(function (i) {
    $(this).delay((i++) * 500).fadeIn(500);
});

或者添加一个类

$('.tagline').each(function (i) {
    $(this).delay((i++) * 500).addClass('animated');
});