2013-02-11 87 views
1

jQuery API documentation for show()狀態,作爲jQuery的1.4.3的,可調用.show()像這樣:爲什麼在調用`complete`函數之前jQuery show()參數不會延遲?

.show([duration ] [, easing ] [, complete ]) 

隨着參數爲:

  • duration(默認值:400):一個字符串或數字決定動畫運行的時間。
  • easing(默認值:擺動):一個字符串,指示用於轉換的緩動函數。
  • complete:動畫完成後調用的函數。

我不需要緩解,所以我只是把這個版本:

.show([duration ] [, complete ]) 

我這是爲了顯示一個div,等待5秒鐘一個功能,然後淡出超過500MS 。調用輔助函數之前

$('#some_div').show(5000, function() { fadeOutHelper(500); }); 

而且在兩種情況下會show()實際上等待5000毫秒:

我已經試過這樣:

$('#some_div').show({ 
     duration: 5000, 
     complete: function() { fadeOutHelper(500); } 
    }); 

這。

我發現了一個變通StackOverflow上使用setTimeout()jQuery show for 5 seconds then hide

$('#some_div').show(); 
setTimeout(function() { fadeOutHelper(500); }, 5000); 

雖然我有一個變通,我想了解我是如何在jQuery的show()文檔誤會一些非常簡單的函數參數。

+2

什麼是'fadeOutHelper'? – 2013-02-11 17:12:15

+0

這不是延遲(),持續時間是顯示某些內容所需的時間,而不是等待一段時間,然後再運行一些隨機函數,即使它可以被某種程度的使用。 – adeneo 2013-02-11 17:13:06

+1

在文檔中,哪些地方會延遲該操作的持續時間?持續時間將指定您希望顯示方法執行的時間段,而不是延遲時間。文檔狀態:'持續時間:決定動畫運行時間的字符串或數字。' – Nope 2013-02-11 17:13:22

回答

2

我有一個功能,應該顯示一個div,等待5秒,然後超過500ms淡出。

你想在5秒內顯示一個div,或者立即顯示div,然後等待5秒回撥?如果是前者,第二次嘗試就可以正常工作,除了你需要刪除額外的}。使用一些額外的空白區域,並很明顯:

$('#some_div').show(5000, function() { 
    fadeOutHelper(500); 
}}); // oh noes, synax error 

如果是後者那麼「解決方法」你舉是實現你想要的正確方式。 setTimeout不是黑客。關於此問題沒有什麼「解決方法 - 伊什」:

$('#flash_helper').show(); 
setTimeout(function() { fadeOutHelper(500); }, 5000); 
+0

Bade內嵌編輯。額外}不在我的代碼中。 「在5秒內展示一個div」是什麼意思?你指的是fadeIn()嗎? – 2013-02-11 17:16:58

+0

通過「在5秒內顯示div」我的意思是API文檔的意思是'duration'參數:「動畫將運行多長時間。」 – 2013-02-11 17:18:20

+0

由於show()不提供動畫(與fadeIn和fadeOut不同),這意味着該參數毫無意義,不是嗎? – 2013-02-11 17:21:16

相關問題