Ho un'interfaccia utente (chiamiamola pagina 1) che contiene molto HTML e JavaScript. Quando alcuni degli elementi a pagina 1 sono cliccato, una UI Dialog jQuery è aperto e caricato con una pagina parziale (chiamiamolo che pagina 2):
$("#myDialog").dialog({ modal: true /* Other options */ });
$('#myDialog').load('page2Link', { }, function() { });
$('#myDialog').dialog('open');
Page 2 ha poi un gruppo di HTML e JavaScript anche. esempio semplificato:
<script src="Scripts/page2Stuff.js" type="text/javascript"></script>
<div id="page2Body">
<!-- More elements -->
</div>
ho JS all'interno page2Stuff.js
che ha bisogno di aspettare fino a quando la pagina 2 è completamente resa. C'è qualcosa che posso usare in questa pagina parziale per vedere se il nuovo HTML è stato aggiunto al DOM? Ho provato la seguente:
$('#myDialog').load('page2Link', { }, page2ReadyFunction);
Questo non riesce a trovare page2ReadyFunction
. Presumo perché .load
esegue il codice JavaScript in page2Stuff.js
e quindi lo elimina o qualcosa del genere?
Il modo in cui sono in grado di farlo funzionare ora è utilizzare setTimeout
e verificare continuamente se $('#page2Body')
restituisce qualcosa, ma questo non sembra l'ideale.
page2ReadyFunction è un gestore di callback richiamato al termine del caricamento. quello sarebbe il modo migliore per andare, non so perché non viene chiamato? puoi spiegare come hai implementato/definito page2ReadyFunction? – c4urself
Perché non metti semplicemente lo 'script' alla fine di' page2'? –
@ c4urself page2ReadyFunction sarebbe semplicemente una funzione definita nel page2Stuff.js in questo modo: function page2ReadyFunction() {} – xbrady