JavaScript fadeOut函数在第二次调用时不起作用

时间:2015-06-17 11:17:02

标签: javascript

我有以下功能,它第一次被调用时正常工作,但在第二次函数调用时只有警报正在工作。 任何人都可以帮助我解释为什么接下来的三条线路在第二,第三等电话上工作

function loginData(){ 
        var form = $("#signInForm");
    $.ajax({
            type: 'POST',
            url: '/signin/signin',
            data: form.serialize(),
            success: function(data){           
        if(data == "Success")
        { 
            location.replace('<?php echo BASE_HREF ?>/profile');    
        }
        else
        { alert("hello");//this alert is coming but next three lines don't get executed second and next all time
          $('#msg').text(data);
          $('#msg').css('color', 'red');    
          $('#msg').fadeOut(2000);
        }               
        //$('#msg').text('<?php echo $errormsg[jserr_msg]; ?>');    
        }                                         
         });                    
    }

3 个答案:

答案 0 :(得分:1)

第一个调用使用#msg隐藏fadeOut元素。如果您希望在后续通话中再次显示,请显示:

$('#msg').text(data);
$('#msg').css('color', 'red');    
$('#msg').show();
$('#msg').fadeOut(2000);

答案 1 :(得分:0)

删除#msg内容,并在淡出完成后重新显示

$('#msg').fadeOut(2000, function(){
   $('#msg').empty();
   $('#msg').show();
});

答案 2 :(得分:0)

这是一个展示如何解决问题的示例,我设置了间隔以显示两个功能之间的差异。

第一个呼叫正在被呼叫,但是在再次淡出之前你没有再次显示<Location></Location>。所以它看起来并没有真正起作用,然后使用第二个它在使用msg之前使用.show()再次显示消息

&#13;
&#13;
fadeOut()
&#13;
setInterval(function(){ notWorkingAgain() }, 2000);
setInterval(function(){ WorkingAgain() }, 2000);

function notWorkingAgain()
{ 
  $('#msg').text("ERROR MESSAGE OR SUCCESS");
  $('#msg').css('color', 'red');    
  $('#msg').fadeOut(4000);                              
}

function WorkingAgain()
{ 
  $('#msg2').text("ERROR2 MESSAGE OR SUCCESS");
  $('#msg2').css('color', 'red');
  $('#msg2').show();
  $('#msg2').fadeOut(4000);                              
}
&#13;
&#13;
&#13;