Несколько блоков в JQuery UI Blocker?

Я использую этот плагин.

Однако, кажется, использовать глобальные переменные

$.blockUI();
$.unblockUI();

Есть ли там у меня могут быть разные экземпляры этого блока.

 $(document).ajaxStart(function (e)
 {
          $.blockUI(); //setup with a loading msg.
  });

 $(document).ajaxStop(function (e)
        {       
            $.unblockUI();

        })


var ajax = // ajax setup stuff


// 1.5 way of doing it
ajax .success(function (response)
            {
               var valid = checkIfValid(response); // check if valid
               if(valid)
               {
                      $.blockUI(); // setup with a save message
               }

            });

Это то, что у меня есть. я кладу

$.blockUI();

для простоты, без параметров, но в моем реальном коде у меня есть сообщения и другие параметры.

Так что теперь проблема в том, что когда успех завершен, вызывается AJAX-стоп и все разблокируется. Я хочу, чтобы очищался только тот, который был запущен в начале ajax, а не тот, что в действительном.

Поэтому мне нужны разные экземпляры.

1 ответ

Решение

Вы можете сделать то, что вы пытаетесь сделать, позвонив block на div что вы создаете на лету, а затем просто удаляя это div из DOM. Например:

$(document).ajaxStart(function (e) {
    /* Create a <div> that will contain the blocking elements: */
    $("<div id='ajax-block' style='position:fixed;width:100%;height:100%' />")
        .appendTo("body").block()
});

$(document).ajaxStop(function (e) {
    /* Remove the page block specific to the ajax request: */       
    $("#ajax-block").remove();
});

И сделайте что-то подобное для другого события, которое вы блокируете (просто измените id атрибут внутри динамически добавляемого div и призыв к remove(),

Другие вопросы по тегам