【问题标题】:jquery $.slideUp() works well, but $.slideDown() doesn't work at alljquery $.slideUp() 效果很好,但是 $.slideDown() 根本不起作用
【发布时间】:2012-01-27 15:32:11
【问题描述】:

我见过 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代码:(我使用codeigniter)

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);

什么都不做!

【问题讨论】:

  • .flash_message 是一个什么样的html元素? (也许也发布 HTML 是个好主意)
  • 谢谢。我不相信,但这可能很重要。至少如果你知道发生了什么,可能会让你对它的内容更加确定。
  • “产生相同的结果”是什么意思?最后一个例子没有产生任何东西,因为你首先延迟然后隐藏。第一个示例首先显示 div,然后将其隐藏。
  • @Niklas No Niklas,“产生结果”是指生成 HTML。在上面的例子中:&lt;div class="flash_message success"&gt;Event added successfully.&lt;/div&gt;
  • 你能在这里重现错误吗? jsfiddle.net

标签: jquery jquery-animate slidedown slideup


【解决方案1】:

你应该把延迟和slideUp放到初始slideDown函数的回调中

一旦 slideDown 完成,回调中的代码将被执行。

这是一个 jsfiddle - http://jsfiddle.net/FK2Fd/1/

$(function(){

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

});

【讨论】:

  • 那么为什么jsfiddle.net/nick_craver/JDfae 与代码:$('#message-box').slideDown('slow').delay(1500).slideUp('slow'); 一起工作?
  • 我不知道为什么,但我已经看到我自己的 Firefox 的问题!虽然我使用的是最新版本(在 ubuntu 中)。不管怎么说,还是要谢谢你。我还是接受你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多