Подавить временную обработку событий jQuery

Есть ли элегантный способ временного подавления событий jQuery? Я использую такой код:

$(element).unbind(event, function1).unbind(event, function2);
// code for which the event is suppressed
$(element).bind(event, function1).bind(event, function2);

но я нахожу это немного неуклюжим и не очень масштабируемым для многих событий. Почему я хочу временно подавить события? Я использую плагин BlockUI для блокировки пользовательского интерфейса во время доступа Ajax. Это сделано с:$ (). AjaxStart ($. BlockUI) .ajaxStop ($. UnblockUI) как предложено BlockUI.

Тем не менее, один доступ Ajax является особенным, поэтому мне нужно другое сообщение. События ajaxStart и ajaxStop влияют на код сообщения (ничего не отображается):

function message(text, callback) {
  if (text == undefined) {
     $.unblockUI();
     return;
  }

  // $().unbind('ajaxStop', $.unblockUI).unbind('ajaxStart', $.blockUI);
  $("#message_text").html(text);
  $.blockUI({message: $("#message")});
  $("#message_ok").click(function() { 
    // $().bind('ajaxStop', $.unblockUI).bind('ajaxStart', $.blockUI);
    $.unblockUI();
    if (callback != undefined) callback();
  });
}

Только если я раскомментирую строки unbind () и bind (), это работает.

Ответы на вопрос(6)

Ваш ответ на вопрос