2010-01-09 20 views
7

¿Es posible crear y adjuntar una devolución de llamada que se llamaría cada vez que se completa una solicitud ajax independientemente de si la llamada se realizó utilizando $.ajax, $.post, load o cualquier otra función?Llamada global para llamadas Ajax en JQuery

EDIT:

La solución dada por Nakul (usando ajaxSuccess evento global) es casi perfecta. Sin embargo, tengo un problema cuando lo uso con la función load. El evento ajaxSuccess se genera después de que la solicitud se haya completado pero antes de cualquier manipulación DOM. Me gustaría ejecutar algún código después de que el DOM haya sido modificado. Mi solución temporal es usar setTimeout y esperar un par de milisegundos, pero no creo que sea lo suficientemente confiable para mí.

Entonces otra pregunta es: ¿cómo se puede ejecutar el código después de que el DOM haya sido manipulado por la función load?

EDIT 2:

he conseguido resolver el segundo problema utilizando ajaxComplete evento en lugar de ajaxSuccess.

+0

Se puede publicar su solución? – redolent

Respuesta

1

Uso del ajaxSuccess y tal vez desea ejecutar el código cuando se hace clic en un enlace?

HTML:

<a href="javascript:void(0);" class="runCode">Run code</a> 

JS:

$(function() { // same as dom loaded 
    $('a.runCode').click(function() { 
     alert('whatever you want to do here'); 
    }); 
}); 
Cuestiones relacionadas