2010-01-04 18 views
6

Tengo un botón que está dentro de un control de panel de actualización. El evento click del botón tiene una función definida a través de JQuery. Una vez que se complete la devolución de datos asincrónica, el evento JQuery no se activará cuando se haga clic en el botón posteriormente. ¿Qué debo hacer para corregir este comportamiento y mantener el archivo adjunto al evento de JQuery al evento de clic del botón una vez que se haya actualizado de forma asíncrona?Controles en UpdatePanel Perdiendo eventos JQuery

Respuesta

15

poner vinculante el controlador de eventos jQuery dentro de la función siguiente

function pageLoad(sender,args) { 

    // binding code here, for example 
    $('#button').click(function(e) { 
     // do something when the click event is raised 
    }); 

} 

pageLoad se ejecuta después de cada devolución de datos, sincrónica o asincrónica. pageLoad es un nombre de función reservada en ASP.NET AJAX que es para este propósito. $(document).ready(), por otro lado, se ejecuta solo una vez, cuando el DOM está inicialmente listo/cargado.

ver este Overview of ASP.NET AJAX client lifecycle events

+0

¿Puede la carne este ejemplo de código más información por favor? ¡Gracias! – Achilles

+1

He agregado un controlador de eventos de ejemplo. La "magia" está en el nombre de la función 'pageLoad', que es una función reservada que se ejecutará cuando la página se publique de nuevo, de manera sincrónica o asincrónica. Es análogo a configurar una función para ejecutar usando 'Sys.Application.add_load (handler);' –

+0

¡Muchas gracias, acabo de implementar esto y funciona muy bien! +1 – Achilles

Cuestiones relacionadas