2012-01-27 67 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