2011-10-03 192 views
0

为什么这是行不通的延迟不工作

$('#upload-title').css({ background: '#ffffff' }).delay(800).css({ background: '#00FF72' }); 

32,我想#上传的标题。白色为0.5秒。感谢您的帮助

回答

0

你需要使用超时,延迟是指使用带有动画:

可以使用queue方法css调用添加到队列

$('#upload-title').css({ 
    background : '#eeeeff' 
}); 
setTimeout(function() { 
    $('#upload-title').css({ 
     background : '#00FF72' 
    }); 
}, 800); 
+1

我个人比较喜欢古法的链式方法。 – Blowsie

+1

你不需要*使用超时。 – Guffa

+0

我更喜欢队列方法,不知道那个。 – Jasuten

1

.delay()适用于动画,请使用jquery。 animate()改为

+0

Animate不适用于颜色。你需要一个插件。 – Guffa

+0

事实上,尽管jquery ui扩展了包含颜色的动画功能。 – Blowsie

+0

是的,一个臃肿的图书馆也有效。 ;) – Guffa

8

delay方法延迟了效果队列中的东西,而css不是效果方法。

$('#upload-title').css({ background: '#ffffff' }).delay(500).queue(function(){ 
    $(this).css({ background: '#00FF72' }); 
}); 

演示:http://jsfiddle.net/Guffa/BxJ3Z/

+0

不错的解决方案.. – Blowsie

+0

伟大的作品! - '$('newPost').css(“background-color”,“#D6F5D6”)。fadeIn('slow')。delay(1500).queue(function(){ $(this).css (“background-color”,“#F1F1F1”); $(this).removeClass('newCommentItem'); });' –

0

Jsfiddle

$(function() { 
    setTimeout(
     function() { 
      $('#upload-title').css({ 
       background: '#00FF72' 
      }); 
     }, 500 
    ); 
})