0

私は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);} 
});

ユーザーがアラートメッセージを確認するまで、オーバーレイを表示したままにします。

ありがとう。

4

1 に答える 1

2

$ .alertはネイティブJQueryではないため、おそらく非同期で動作するプラグインです。グーグル検索はそれがよく知られているものの1つではないことを示唆しています。

簡単なテスト...

変化する

$.alert("msg")

alert("msg")

それはあなたが求めているもののように見えますか(アラートは同期して機能します)。

それがあなたが求めているものにもっと似ている場合、次の段階はプラグインがどのように機能するかを特定することです(プラグインを使い続けたい場合)

于 2013-01-15T05:56:31.823 に答える