Блокировать пользовательский интерфейс с помощью jQuery - PullRequest
2 голосов
/ 16 января 2011

Я использую jQuery для блокировки пользовательского интерфейса следующим образом.

$('#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, но это не работает.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 16 января 2011

Ваш скрипт, кажется, уже вызывает unblockUI, используя ajaxStop? Вы пытались удалить эту строку или установить время ожидания в обработчике ajaxStop?

UPDATE

Вы можете попробовать это:

$('#send').click(function() {
    $.blockUI({ message: '<p id="loading"><img src="images/busy.gif" /> processing...</p>'});  
    send();
    $(document).ajaxStop(function(){
        setTimeout($.unblockUI, 2000); 
    }); 
}); 
0 голосов
/ 16 января 2011

Вы можете использовать функцию jQuery delay([time in seconds]). Насколько я знаю, setTimeout работает в другом рабочем процессе, чем остальная часть сценария.

...