2009-11-10 15 views
6

La intranet corporativa que construí utiliza en gran medida llamadas AJAX para cargar tablas y otros recursos. De forma predeterminada, aparece un cuadro de diálogo modal con un gif de carga para indicarle al usuario que la página se está cargando. Configuro este valor predeterminado con jQuery's ajaxSetup.Deshabilitar ajaxConfiguración predeterminada para algunas llamadas AJAX

Hay un par de áreas donde utilizo un cuadro de búsqueda con autocompletar. Y noté que cada vez que se escribe un caracter, aparece el cuadro de diálogo de carga. ¿Alguna forma de desactivar el ajaxSetup solo para esa llamada?

¡Gracias por la ayuda!

+0

Proporcione un código – jitter

Respuesta

10

Debería poder pasar un nuevo objeto de opciones con cada llamada ajax para sobrescribir la configuración por defecto cuando sea necesario.

No estoy seguro de si su modal está activado antes de Enviar o lo que sea, pero creo que obtendrá la imagen de abajo.

$.ajax({ beforeSend: function() { /* do nothing */ }.... 
-3

Utilice $ .ajax() llamada para anular los valores predeterminados establecidos en $ .ajaxSetup().

9

Supongo que configuró un controlador para un evento Ajax global para crear el cuadro de diálogo. Estos eventos pueden ser desactivados para una solicitud específica como tal (de la documentación de jQuery):

Global Events

estos eventos se difunden a todos los elementos en el DOM, lo que provocó ningún controlador que puede estar escuchando. Puede detectar estos eventos, así:

$("#loading").bind("ajaxSend", function(){ 
    $(this).show(); 
}).bind("ajaxComplete", function(){ 
    $(this).hide(); 
}); 

Eventos globales se pueden desactivar, para una petición Ajax en particular, mediante introducción de la opción global, así:

$.ajax({ 
    url: "test.html", 
    global: false, 
    // ... 
}); 
1

Desactivación predeterminados ajaxSetup para algunos AJAX llamadas Hay una línea añadir

beforeSend: function(){$.event.trigger('ajaxStart');} 

beforeSend (evento local) = Este evento, se activará antes de que se inicie una petición Ajax, le permite modificar la Objeto XMLHttpRequest

Cuestiones relacionadas