2012-01-27 71 views
0

傢伙,我已經看到了jQuery: slideUp() delay() then slideDown; not working工作,我正好編碼:

$('.flash_message').slideDown(800).delay(5000).slideUp(1000);

不過了slideDown不似乎工作。

換句話說:

``$( 'flash_message')了slideDown(800).delay(5000).slideUp(1000);`

$('.flash_message').delay(5000).slideUp(1000);

正在產生相同的結果!


,其生成 .flash_message元件

PHP代碼:(I使用笨)

if ($this->session->flashdata('message_array')) 
{ 
    foreach($this->session->flashdata('message_array') as $message) 
    { 
     echo "<div class='flash_message {$message[0]}'>{$message[1]}</div>"; 
    } 
} 

示例HTML生成:

<div class="flash_message success">Event added successfully.</div> 

更新:我得到了問題:

了slideDown完全不

$('.flash_message').slideDown(800);

工作,不會做任何事情!

+3

什麼樣的HTML元素是.flash_message? (也許是個好主意,也可以發佈HTML) – Magrangs 2012-01-27 15:34:40

+0

謝謝。我不相信但它可能很重要。至少如果你知道發生了什麼,可能會讓你更確定它的內容。 – 2012-01-27 15:37:31

+0

你是什麼意思「產生相同的結果」?最後一個例子不會產生任何東西,因爲你首先延遲然後隱藏。第一個例子首先顯示div並隱藏它。 – Niklas 2012-01-27 15:42:30

回答

2

你應該延遲和效果基本show放入初始了slideDown函數一次了slideDown完成

代碼在回調將被執行的回調。

繼承人的jsfiddle - http://jsfiddle.net/FK2Fd/1/

$(function(){ 

    $('.flash_message').slideDown(800, function(){ 
     $(this).delay(500).slideUp(1000); 
    }); 

}); 
+0

爲什麼http://jsfiddle.net/nick_craver/JDfae/與代碼一起工作:'$('#message-box') .slideDown('slow')。delay(1500).slideUp('slow');'? – 2012-01-27 15:47:22

+0

我確定它應該可以工作,但它不起作用!這很奇怪! – 2012-01-27 15:51:30

+0

我不知道爲什麼,但我已經看到,與我自己的Firefox的問題!儘管我使用最新版本(在Ubuntu中)。不管怎麼說,還是要謝謝你。無論如何,我接受你的答案。 – 2012-03-06 09:46:59