jQuery fadeOut如果可见的话

时间:2013-06-24 13:03:44

标签: jquery

我收到了一条错误消息,如果表单已提交并返回错误,则显示此消息。

<div id="error"></div>

FormCheck.php

<script type="text/javascript">
jQuery('#error', window.parent.document).html( "There was an Error.");
</script>

如果出现错误,则会显示此消息。我的问题是:如果它可见,我怎么能让它在4秒后淡出?

这是我得到/研究过的......

    <script type="text/javascript"> 
    //if($('#error').is(':visible')) {
    $("#error").ready(function () {
    $("#error").delay(4000)(function () {
$("#error").fadeOut(500);
    });
    });
    </script>

无法弄清楚如何完成这件事......任何人都可以如此友善地给我一个提示如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

只需做一个setTimeout。

$(document).ready(function(){
    if ($("#error").is(":visible")) {
        setTimeout(function(){
            $("#error").fadeOut(500);
        }, 4000);
    }
});

此外,它看起来你正在使用Javascript设置错误的内容,如果是这样,并且你没有刷新你的页面,你可以从任何地方调用setTimeout来设置错误容器{{ 1}}。

答案 1 :(得分:3)

该行

 $("#error").ready(function () {

应该是

 $(document).ready(function () {

delay syntax

$('#foo').slideUp(300).delay(800).fadeOut(400); //example

答案 2 :(得分:1)

$(document).ready(function(){
    if ($("#error").html() != "") {
        setTimeout(function(){
            $("#error").fadeOut(500);
        }, 4000);
    }
});

我猜你真的只是在里面设置文字。不是它的可见性。