延迟jQuery不起作用

时间:2014-03-30 14:27:54

标签: jquery

我在函数

中有这个功能
setInterval(function () {       

    self.find('li').removeClass('main-item');
    self.find('li:nth-child(3)').addClass('main-item')
        .delay(10000)
        .queue(function () {
        $(this).removeClass('main-item');
        $(this).dequeue();
    });

    self.find('li:nth-child(1)')
        .delay(8000)
        .animate({opacity: 0}, {
        duration: 800,
        queue: false,
        complete: function () {
            setTimeout( function(){
              $(this).css({opacity: 1});
                },1200);
            }
    });

    self.find('li:nth-child(4)').css({opacity: 0}); 

    self.find('li:nth-child(4)')
        .delay(30000)
        .animate({opacity: 1}, {
        duration: 2000,
        queue: false
    });

}, 10000);

正如我在这部分中所看到的,延迟不起作用

self.find('li:nth-child(4)')
        .delay(30000)
        .animate({opacity: 1}, {
        duration: 2000,
        queue: false
    });

我可以延迟任何号码,但它保持不变 怎么了?如何使它工作?

1 个答案:

答案 0 :(得分:0)

queue属性(如果false)将立即启动动画。尽量不要添加它,只需将代码设置为:

self.find('li:nth-child(4)')     // fourth child, which is an `li`
    .delay(30000)                // after 30 seconds
    .animate({opacity: 1}, 2000);// make opacity 1 in 2 seconds

Documentation