2

このようにjQueryを使用してUIをブロックします

$('#send').click(function() {
       $.blockUI({ message: 
       '<p id="loading"><img src="images/busy.gif" /> processing...</p>'});  
        send();
       $(document).ajaxStop($.unblockUI); 
       setTimeout($.unblockUI, 2000); 

}); 

send()いくつかのバックグラウンド処理を行い、#loading タグに応答メッセージを設定します。プロセスが終了した後、このメッセージを数秒間残しておきたいので、setTimeout を使用しますが、これは機能しません。

何か案は?

4

2 に答える 2

2

あなたのスクリプトは既にunblockUIusingを呼び出しているようですか? ajaxStopこの行を削除しようとしたか、ajaxStopハンドラー内でタイムアウトを設定しようとしましたか?

アップデート

これを試すことができます:

$('#send').click(function() {
    $.blockUI({ message: '<p id="loading"><img src="images/busy.gif" /> processing...</p>'});  
    send();
    $(document).ajaxStop(function(){
        setTimeout($.unblockUI, 2000); 
    }); 
}); 
于 2011-01-16T19:28:23.613 に答える
0

jQueryのdelay([time in seconds])機能を利用できます。私の知る限りsetTimeout、スクリプトの残りの部分とは別のワークフローで動作します。

于 2011-01-16T19:26:37.757 に答える