我有一个jQuery $.alert
和一个.fadeOut(1000)
连续工作,但我不喜欢我看到的结果。我想在用户关闭.fadeOut(1000)
后才运行$.alert
。我知道你实际上无法捕获警报的紧急事件,但是有人可以建议一个可能完成我正在寻找的解决方案吗?
以下是我正在尝试实施更改的现有ajax
来电:
$.ajax({
url: sURL + "utility/mymethod",
type: "POST",
data: {ClientNum: ClientNum},
dataType: 'json',
success: function(json) {
if (typeof(json.ClientEmail) != "undefined" && json.ClientEmail !== null && json.ClientEmail !== "") {
$.confirm("Please call . . . .",
function(){
if (json.ClientEmail){
send_email(json);
}
},
function(){
$.msg("Password recovery information has NOT been sent.",
{header:'Password Not Sent', live:10000});
$('#ajaxShield').fadeOut(1000);
})
} else {
//THIS IS WHERE I WANT THE FADEOUT TO WAIT FOR THE ALERT
$.alert("There is no email address.")
$('#ajaxShield').fadeOut(1000);
};
},
error:function (xhr, ajaxOptions, thrownError){ alert('Problem, Status code:'+xhr.status+', Error:'+thrownError);}
});
我希望我的叠加层保持可见,直到用户确认警报消息。
感谢。
答案 0 :(得分:2)
$。alert不是本机JQuery,因此可能是一个异步操作的插件。谷歌搜索表明,它不是众所周知的。
简单测试......
更改
$.alert("msg")
到
alert("msg")
这看起来像你所追求的(警报同步工作)。
如果这更像您所追求的,下一阶段是确定您的插件的工作方式(如果您想继续使用它)