Tengo una IU (llamémosla página 1) que tiene una gran cantidad de HTML y JavaScript. Cuando algunos de los elementos en la página 1 se hace clic, una interfaz de usuario de diálogo jQuery se abre y se carga con una página parcial (Llamemos que página 2):
$("#myDialog").dialog({ modal: true /* Other options */ });
$('#myDialog').load('page2Link', { }, function() { });
$('#myDialog').dialog('open');
Page 2 a continuación, tiene un montón de HTML y JavaScript también. Ejemplo simplificado:
<script src="Scripts/page2Stuff.js" type="text/javascript"></script>
<div id="page2Body">
<!-- More elements -->
</div>
tengo JS dentro page2Stuff.js
que hay que esperar hasta la página 2 ha sido completamente renderizada. ¿Hay algo que pueda usar en esta página parcial para ver si el nuevo HTML se ha agregado al DOM? He intentado el siguiente:
$('#myDialog').load('page2Link', { }, page2ReadyFunction);
Esto no puede encontrar page2ReadyFunction
. Supongo que porque .load
ejecuta el JavaScript en page2Stuff.js
y luego lo descarta o algo?
La forma en que puedo hacer que funcione ahora es usar setTimeout
y comprobar continuamente si $('#page2Body')
devuelve algo, pero esto no parece ideal.
page2ReadyFunction sería un controlador de devolución de llamada una vez completada la carga. esa sería la mejor manera de hacerlo, ¿no sabes por qué no se llama? ¿Puedes explicar cómo implementó/definió page2ReadyFunction? – c4urself
¿Por qué no simplemente pone el 'script' al final de' page2'? –
@ c4urself page2ReadyFunction sería simplemente una función definida en page2Stuff.js como lo siguiente: function page2ReadyFunction() {} – xbrady