Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript淡出功能不支持';第二次呼叫不工作_Javascript - Fatal编程技术网

JavaScript淡出功能不支持';第二次呼叫不工作

JavaScript淡出功能不支持';第二次呼叫不工作,javascript,Javascript,我有下面的函数,它在第一次调用时工作正常,但在第二次调用时,只有alert在工作。 有谁能帮我解释一下为什么接下来的三行在第二、第三等通话中不起作用 function loginData(){ var form = $("#signInForm"); $.ajax({ type: 'POST', url: '/signin/signin', data: form.serialize(),

我有下面的函数,它在第一次调用时工作正常,但在第二次调用时,只有alert在工作。 有谁能帮我解释一下为什么接下来的三行在第二、第三等通话中不起作用

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]; ?>');    
        }                                         
         });                    
    }
函数loginda(){
变量形式=$(“#符号形式”);
$.ajax({
键入:“POST”,
url:“/signin/signin”,
数据:form.serialize(),
成功:函数(数据){
如果(数据=“成功”)
{ 
位置。替换(“/profile”);
}
其他的
{alert(“hello”);//此警报即将发出,但接下来的三行不会一直在第二行和下一行执行
$('#msg')。文本(数据);
$('#msg').css('color','red');
$('#msg')。淡出(2000年);
}               
//$('#msg')。文本('');
}                                         
});                    
}

第一次调用使用
淡出
隐藏
#msg
元素。如果要在后续通话中再次显示,请显示:

$('#msg').text(data);
$('#msg').css('color', 'red');    
$('#msg').show();
$('#msg').fadeOut(2000);
删除
#msg
内容,并在淡出完成后重新显示

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

这里是一个显示如何解决问题的示例,我设置了时间间隔以显示两个函数之间的差异

正在调用第一个的调用,但是在再次淡出之前,您不会再次显示
msg
。因此,它看起来好像没有实际工作,然后使用第二个,它在使用
fadeOut()
之前使用
show()
再次显示消息

setInterval(function(){notWorkingAgain()},2000);
setInterval(function(){WorkingAgain()},2000);
函数notWorkingAgain()
{ 
$('#msg').text(“错误消息或成功”);
$('#msg').css('color','red');
$('#msg')。淡出(4000);
}
函数WorkingAgain()
{ 
$('#msg2')。文本(“错误2消息或成功”);
$('#msg2').css('color','red');
$('#msg2').show();
$('msg2')。淡出(4000);
}

错误消息或成功

ERROR2 MESSAGE或SUCCESS
您能否创建JSFIDLE,请您为我们提供一个FIDLE,以便人们自己检查问题?我假设您在某个时候正在重新显示
#msg
,因为如果它淡出一次,您将看不到它显示任何内容,然后再次淡出。jquery的淡出使所选元素的样式为“display:none”因此,除非您再次将显示设置为可见,否则它将不可见。换句话说,JS在第二次调用中确实起作用:)