Nessuna delle risposte che ho trovato su internet mi ha soddisfatto mentre cercavo alla soluzione. Anche questo non lo fa. Dopo aver letto molto di più sulla documentazione dell'API JQuery, I found something really interesting. Come descritto in questa pagina web, è possibile associare un evento in cui verrà eseguito dopo che la richiesta Ajax ha eseguito il proprio lavoro. Il fatto è che non è semplice come questo; Poiché stavo facendo i miei test, utilizzando l'esempio fornito nella documentazione dell'API, non riuscivo a farlo funzionare. Sembra che la mia finestra di dialogo JQuery non esistesse in un modo di contesto "futuro".
Questo mi ha portato a this page quale descrizione era: Allegare un gestore di eventi per tutti gli elementi che corrispondono al selettore corrente, ora e in futuro. Trovare questo mi porta a creare una funzione come questa:
$(document).live("ajaxStop", function (e) {
$(".myDiagDiv").dialog("option", "position", "center");
});
E voilà! Esso funziona magicamente! Al termine della richiesta Ajax, la proprietà position viene modificata e adattata al contenuto del div e alle sue dimensioni!
Spero che aiuti le persone in futuro!
MODIFICA: è possibile utilizzare la funzione ".on()" anziché ".live()". Da quando ho scritto la mia risposta, sembra che la funzione ".live()" sia stata rimossa nella versione 1.9 di jQuery e sostituito da quello nuovo. Una soluzione più appropriata per gli utenti di jQuery> = 1.9 sarebbe qualcosa di simile:
$(document).on("ajaxStop", function (e) {
$(".myDiagDiv").dialog("option", "position", "center");
});
Prova chiama "$ ("#dialog") .dialog ({}); " di nuovo dopo ogni aggiornamento ajax? –
@madhairsilence: Se hai trovato la mia risposta buona, per favore considera di renderla come "accettata". Ciò lo renderà più visibile per i futuri visitatori. Grazie! – DaveWut
La domanda ha già una risposta contrassegnata con – madhairsilence