żadna z odpowiedzi nie znalazłem w internecie spełnione mnie, gdy szukałem w rozwiązaniu. Nawet tego nie ma. Po przeczytaniu dużo więcej na temat dokumentacji interfejsu API JQuery, I found something really interesting. Jak opisuje niniejsza strona internetowa, można powiązać zdarzenie, w którym zostanie ono wykonane po wykonaniu zadania ajax. Chodzi o to, że nie jest to takie proste; Ponieważ robiłem własne testy, korzystając z przykładu przedstawionego w dokumentacji interfejsu API, nie mogłem go uruchomić. Wygląda na to, że moje okno dialogowe JQuery nie istniało w "przyszłościowym" kontekście.
To doprowadziło mnie do this page, który to opis brzmiał: Dołącz obsługę zdarzeń dla wszystkich elementów, które pasują do bieżącego selektora, teraz i w przyszłości. Znalezienie to prowadzi mnie do stworzenia funkcję jak ten:
$(document).live("ajaxStop", function (e) {
$(".myDiagDiv").dialog("option", "position", "center");
});
i voila! To działa jak urok! Po wykonaniu zapytania ajax właściwość position zostaje zmieniona i dostosowana do zawartości div i jej wymiarów!
Mam nadzieję, że pomoże to ludziom w przyszłości!
EDYCJA: Możesz użyć funkcji ".on()" zamiast ".live()". Od czasu gdy napisałem swoją odpowiedź, wygląda na to, że funkcja ".live()" została usunięta w wersji 1.9 jQuery i zastąpiony przez nowy. Bardziej odpowiednim rozwiązaniem dla użytkowników jQuery> = 1,9 byłoby coś takiego:
$(document).on("ajaxStop", function (e) {
$(".myDiagDiv").dialog("option", "position", "center");
});
Spróbuj zadzwonić „$ ("#dialog") .dialog ({}); " ponownie po każdej aktualizacji ajax? –
@madhairsilence: Jeśli znalazłeś moją odpowiedź dobrze, rozważ proszę dokonanie jej "zaakceptowania". Dzięki temu będzie bardziej widoczny dla przyszłych odwiedzających. Dzięki! – DaveWut
Pytanie już ma odpowiedź oznaczoną – madhairsilence