是否可以重写此代码以使用jquery链接setTimeout()

时间:2011-02-26 05:11:20

标签: javascript jquery

使用setTimeout()时是否可以使用链接。这个例子给div一个红色背景,然后我用setTimeout()等待一秒钟,让背景恢复正常。可以以任何方式重写或改进

$(target).css('background', 'red');
setTimeout(function(){
   $(target).css('background', '');
}, 1000 );

4 个答案:

答案 0 :(得分:1)

如果你的jQuery调用缓存,你将获得性能提升:

var target = $(target);
target.css('background', 'red');
setTimeout(function(){
   target.css('background', '');
}, 1000 );

答案 1 :(得分:1)

除非项目是效果队列或自定义队列的一部分,否则我几乎是正向延迟将无效。也就是说,我不知道这是否会非常有效,但它会像你问的那样使用链接:

$(target)
    .queue('fx', function(next) {
        $(this).css('background', 'red').delay(800);
        next();
    })
    .queue('fx', function(next) {
       $(this).css('background', '');
       next();
    })
    .dequeue('fx');

答案 2 :(得分:-1)

你可以在jquery中使用“延迟”功能,如

$(目标).delay(1000)的CSS( '背景', '');

此功能仅在jquery 1.4及下一版本中可用。

请检查

http://api.jquery.com/delay/

答案 3 :(得分:-1)

<强> [编辑]

我认为您可以使用delayqueue函数执行此操作。

$(target).css('background', 'red').delay(5000).queue(function() {
    $(this).css('background', 'green');
});

查看实时demo