Suprimir el manejo de eventos jQuery temporalmente

¿Hay una manera elegante de suprimir temporalmente los eventos de jQuery? Yo uso código como este:

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

pero me parece un poco torpe y no muy escalable para muchos eventos. ¿Por qué quiero suprimir eventos temporalmente? Utilizo el plugin BlockUI para bloquear la interfaz de usuario durante el acceso Ajax. Esto se hace con:$ (). ajaxStart ($. blockUI) .ajaxStop ($. unblockUI) según lo propuesto por BlockUI.

Sin embargo, un acceso a Ajax es especial, por lo que necesito un mensaje diferente. Los eventos ajaxStart y ajaxStop interfieren con el código del mensaje (no se muestra nada):

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();
  });
}

Solo si elimino el comentario de las líneas unbind () y bind (), está funcionando.

Respuestas a la pregunta(6)

Su respuesta a la pregunta