$(document).listo en ascx página después de ajax de devolución de llamada
-
21-08-2019 - |
Pregunta
Estoy teniendo un pequeño problema con esta configuración aquí tengo una lista de .ascx
los archivos y todos ellos hacen diferentes tareas en términos de los cálculos para el controlador de sí mismo.Así que en mi .aspx
página hago clic en un Ajax.ActionLink()
y esto hace que se concreta la .ascx
archivo basado en el artículo que me ha hecho clic.Dentro de ese .ascx
de 1 a 3 eventos que se activan 2 de ellos son onclick
eventos y 1 es onload
.El onclick
evento(s) son más fáciles de trabajar en términos de lo que puedo codificar directamente en los controles evento como así onclick="$("#toggleMe3").slideToggle("slow");"
y el onload
se debe ejecutar cuando el .ascx
se carga estuve probando esta en un $(document).ready(function(){});
llamada, esto funciona bien en el .aspx
la página, pero tan pronto como intente agregando que en el .aspx
la página no se carga y su ideal de que esto funciona, pero no tengo idea de por qué no.En realidad, nada en las etiquetas de script funciona si puedo insertar directamente en el .ascx
la página sólo funcionan si son codificados en el control de eventos, algunos de ellos por lo menos;el onload
y onprerender
no fuego.
Solución
Yo tenía el mismo problema, después de la escritura de devolución parcial especifica en $ (document) ready no se ha ejecutado. He encontrado la solución aquí MSDN - PageRequestManager Clase
Parece que la adición de una secuencia de comandos, como a continuación se soluciona el problema
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
</script>
Otros consejos
He tenido éxito en el uso ready (documento) $ en mis parciales que se cargan a través de XHR. Son los puntos de vista que va a cargar a través de XHR lanzar excepciones de JavaScript? ¿O es que contienen incorrecto HTML?
Me suelen tener mi $ (document) Método ready en la parte inferior de mi parcial que me carga a través de Ajax, como ...
<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>
Yo tenía dificultades para entender su pregunta ... pero aquí va.
Si está cargando fecha con llamadas AJAX, no se disparará el evento $ (document) ready () - debido a que la página se ha cargado. Usted se acaba de cargar más datos ahora.
Si ya conoce los controles de lo que va a apear, pre-cargar el código JavaScript, pero en lugar de la unión usando el controlador de eventos click, utiliza el manejador vivo.
so
$("#myControl").click(....);
se convierte en
$("#myControl").live("click", ....);
Lo siento si esto no es lo que estabas buscando.