我有以下功能,它第一次被调用时正常工作,但在第二次函数调用时只有警报正在工作。 任何人都可以帮助我解释为什么接下来的三条线路在第二,第三等电话上工作
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]; ?>');
}
});
}
答案 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()
再次显示消息
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;