在可见性隐藏在jQuery中之前发生警报

时间:2018-09-30 23:22:06

标签: javascript jquery

我有这些javascript代码,它们在首次加载时就可以正常工作,但如果我在登录尝试失败后(当红色文本可见时)尝试使用它,则不会将它们变成隐藏状态并立即发出警报。

尽管 alert()在代码的底部,但它在 $('。invalid-feed')。css('visibility','hidden');之前执行。

那是为什么?

http://jsfiddle.net/jzpdLv0h/19

$(document).ready(function(){

  $("#myButton").click(function(){


    $('.invalid-feed').css('visibility', 'hidden');

    var status = 'success';


    var mySentence1 = $('#firstName').val();
    if (mySentence1 === "")
    {
      $('.invalid-feed#invalid1').css('visibility', 'visible');
      status = 'error';
    }

var mySentence2 = $('#lastName').val();
if (mySentence2 === "")
{
  $('.invalid-feed#invalid2').css('visibility', 'visible');
  status = 'error';
}

var mySentence3 = $('#email').val();
if (mySentence3 === "")
{   
  $('.invalid-feed#invalid3').css('visibility', 'visible');
  status = 'error';
}

if (status == 'success')
{
    alert("success");
}

  });

});

1 个答案:

答案 0 :(得分:0)

  

尽管alert()位于代码的底部,但它是在$('。invalid-feed')。css('visibility','hidden');

之前执行的。

我认为这是因为jQuery从“可见”到“隐藏”的元素过渡的默认持续时间为400毫秒,因此随着它的进行,Javascript解析器将继续处理脚本的其余部分,并到达并实现警报()在400毫秒过去之前。

soktinpk的答案很有帮助,顺便说一句。