Tengo una página donde puedo insertar javascript /jquery para manipular la salida. Yo no tengo ningún control sobre el marcado de página, etc.

Necesito agregar un elemento adicional a través de jquery después de cada uno de los presentes en la página. El problema es que los elementos son generados a través de una llamada asincrónica en la página existente que se produce después de $(document).listo es completa.

Esencialmente, necesito una manera de llamar a mi jquery después de que la página se ha cargado y el posterior de las llamadas ajax se han completado. Hay una forma de detectar la realización de cualquier llamada de ajax en la página y, a continuación, llamar a mi propia función personalizada para insertar los elementos adicionales después de que el recién creado s ?

No entendí, pensé que estaban utilizando $.ajax(), me gustaría añadir el sharepoint detalles aquí, ya que en gran medida los cambios a la pregunta…no estoy seguro de lo que si alguna los eventos de incendios, usted puede tener un sondeo para ver si una carga dinámicamente el objeto está presente para hacer lo que quieres.
Nick, creo que en relación a la consulta original que indica «jQuery» en el título de su suposición era correcta. Yo no puedo ver tu respuesta alguna más, pero si usted readd la referencia a $.ajaxComplete yo estaremos contentos de aceptar la respuesta.
Me recupera la respuesta en caso de que se de uso a futuro de google que puede venir a través de este que están hacer el ajax de carga a través de jQuery…lo siento no hay una manera clara de hacer esto con SharePoint, al menos en el cliente…puede haber alguna opción en el lado del servidor para llamar a un método específico.

OriginalEl autor Brian Scott | 2010-05-26

5 Comentarios

  1. 45

    Lamentablemente esto no aplica ya que parece que el OP no está usando $.ajax() o cualquier método jQuery ajax para la carga de contenido, pero dejando aquí en caso de que las futuras googler está haciendo esto.


    Puede utilizar cualquiera de los mundiales de ajax eventos que satisfacen sus necesidades aquí, probablemente después de $.ajaxComplete() o $.ajaxSuccess().

    Por ejemplo:

    $(document).ajaxSuccess(function() {
      alert("An individual AJAX call has completed successfully");
    });
    //or...
    $(document).ajaxComplete(function() {
      alert("ALL current AJAX calls have completed");
    });

    Si desea ejecutar sólo algunas de función genérica, a continuación, adjuntar documento (que son sólo eventos por debajo). Si quieres mostrar algo en particular, por ejemplo un modal o un mensaje, usted puede utilizar un poco más claro (aunque esto no parece ser lo que usted está después), como este:

    $("#myModal").ajaxComplete(function() {
      $(this).fadeIn().delay(1000).fadeOut();
    });
    Hola Nick, he probado tu ejemplo y había estado tratando de utilizar el ajaxSuccess antes, pero sin suerte. Yo creo que tu ejemplo es correcto, pero no es la activación de una alerta para mí. Para agregar un poco más de fondo; estoy tratando de agregar más elementos a la salida de un estándar de Sharepoint webpart. La webpart enumera una serie de documentos en virtud de un padre / hijo de la agrupación. Inicialmente la carga de la página, con los padres de los elementos y, a continuación, llama a una petición ajax para la carga de los hijos de los documentos. Es en este punto que no puede detectar la llamada ajax para aplicar jquery para el retorno de los elementos.
    Para guuglers es también la función: $(document).ajaxStart(function(){
    Esto es lo que yo uso jquery.ajax.tracker

    OriginalEl autor Nick Craver

  2. 2

    Este ejemplo muestra y oculta los elementos en el inicio y el final de las llamadas ajax con jQuery:

        $("#contentLoading").ajaxSend(function(r, s) {
            $(this).show();
            $("#ready").hide();
        });
    
        $("#contentLoading").ajaxStop(function(r, s) {
            $(this).hide();
            $("#ready").show();
        });

    #contentLoading es una imagen gif indicador de progreso.

    OriginalEl autor Gutzofter

  3. 1

    Que yo podía entender, está utilizando algunos de jQuery, Ajax función en su lista de controlador. Por lo que sólo podría pasar otra función que se invoca después de que su función de Ajax obtiene respuesta. Por ejemplo

    $(document).ready(function(){
        $("#some_div").load('/some_url/', function(){
            /* Your code goes here */
        });
    });

    OriginalEl autor sanya

  4. 1

    Se puede reescribir el send() de la función del objeto XMLHttpRequest.

    Ver una solución para hacer sólo para el uso de Javascript puro aquí.

    OriginalEl autor Sébastien Brodeur

Dejar respuesta

Please enter your comment!
Please enter your name here