【问题标题】:JQuery wait until an element has hidden before continuingJQuery 等到元素隐藏后再继续
【发布时间】:2014-02-12 00:22:10
【问题描述】:

我的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 函数的回调中,尽管我认为我不能。

【问题讨论】:

  • 你能更好地解释为什么你不能把它放在回调中吗?如果元素已经隐藏,则立即调用对slideUp 的回调。

标签: javascript jquery hide wait slideup


【解决方案1】:

由于总是会调用回调(即使元素已经隐藏),因此无需检查。只需将所有内容都放在回调中:

$('#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();
        }
    }
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多