JQuery等到元素隐藏后再继续

时间:2014-02-12 00:22:11

标签: javascript jquery hide wait slideup

我的Jquery代码如下:

if($('#LoginFormError').is(':visible'))$('#LoginFormError').slideUp();
//Check inputs and run ajax
if(CheckInput('#LoginUsername') && CheckInput('#LoginPassword')){
    $('#LoginSubmit').attr('disabled', true);
    $.ajax({
        (..ajax stuf..)
    });
}else{
    $('#LoginFormError').html("Please fill in everything.");
    $('#LoginFormError').slideDown();
}

出于此目的,如果填写了字段,CheckInput将返回true。

我想要做的是,如果#LoginFormError可见,脚本隐藏元素然后运行检查程序。问题是#LoginFormError可能根本不可见,所以我不能把所有内容都放到SlideUp函数的回调中,虽然我认为不行。

1 个答案:

答案 0 :(得分:2)

由于将始终调用回调(即使元素已被隐藏),也无需检查。只需将所有内容放入回调中:

$('#LoginFormError').slideUp(400, function{
        //Check inputs and run ajax
        if(CheckInput('#LoginUsername') && CheckInput('#LoginPassword')){
            $('#LoginSubmit').attr('disabled', true);
            $.ajax({
                (..ajax stuf..)
            });
        }else{
            $('#LoginFormError').html("Please fill in everything.");
            $('#LoginFormError').slideDown();
        }
    }
);