bootstrap 3警告3秒后不会滑动

时间:2014-01-02 02:05:33

标签: php jquery twitter-bootstrap-3

我向用户显示成功警告他的电子邮件已成功发送给我,并且我希望在3秒后将此警报发送到.slideUp()

这是我的代码:

if ($('.dat-alert').length) {
    setTimeout($(this).slideUp(), 3000);
}

我在这里用php打印警报:

if(mail($mail_to, $mail_subject, $mail_body,$header)){
        $mailMessage = '<div class="alert alert-success alert-dismissable dat-alert text-center">';
        $mailMessage.= '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
        $mailMessage.= 'Gracias por ponerte en contacto. Te responderemos en la brevedad posible.' ;
        $mailMessage.= '</div>';
}

但是,警报根本没有隐藏。任何人都知道为什么?

1 个答案:

答案 0 :(得分:2)

你需要将一个实际的函数传递给setTimeout,而不是任意代码(除非它是一个字符串,但这很糟糕)。只需替换此

if ($('.dat-alert').length) {
    setTimeout($(this).slideUp(), 3000);
}

用这个

if ($('.dat-alert').length) {
    setTimeout(function(){ $(this).slideUp(); }.bind(this), 3000);
}

编辑 - 从您的评论中可以看出this不是它应该是的。如果没有看到更多代码,我无法确定,但无论如何,请尝试使用适当的选择器替换this,例如:

if ($('.dat-alert').length) {
    setTimeout(function(){ $('.dat-alert:first').slideUp(); }, 3000);
}