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