2011-10-03 255 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 
    ); 
})