Hallo,
Ich gehe davon aus, dass die Methode die ich oben genannt habe nur einmal aufgerufen wird, nämlich am Anfang nach dem Laden der Seite.
Richtig.
Nun ist die Überlegung, wie ich es schaffe, dass die Methode auch aufgerufen wird, wenn die Seite per AJAX nachgefragt wird.
Befindet sich der fragliche JavaScript-Code in dem HTML-Code, der per Ajax geladen wird? Oder wird er am Anfang normal in die Seite eingebunden, wird also nicht nachgeladen?
In ersten Fall:
jQuery führt den Inhalt von script-Elementen in HTML automatisch aus, wenn das HTML mit Ajax geladen und ins Dokument eingefügt werden. Wenn du also HTML-Code lädst, der <script>…</script> beinhaltet und diesen mit jQuery ins Dokument einbaust, dann werden diese Scripte ausgeführt. Das heißt, auch dein Datepicker-Code sollte ausgeführt werden. Nach dem DOM-Ready führt jQuery die übergebenen Funktionen sofort aus, die $() bzw. $(document).ready() übergeben werden. Prüfe also erst einmal, ob der Code normal eingebunden wird und er von jQuery beim Einfügen ins DOM ausgeführt wird. Dann kannst du ggf. daran arbeiten, dass er auch in diesem Fall korrekt läuft.
Im zweiten Fall:
An der Stelle, an der du die Ajax-Antwort verarbeitest und ins Dokument einfügst, kannst du manuell den Datepicker initialisieren. Dazu führst du dieselbe Funktion zu dem Zeitpunkt noch einmal aus. Du musst natürlich sicherstellen, dass der mehrfache Aufruf möglich ist und nichts kaputt macht.
Beispielsweise
function initDatepicker () {…}
$(document).ready(initDatepicker);
In deinem Ajax-Callback dann ebenfalls initDatepicker().
Alternativ kannst du auf Ajax-Events hören und initDatepicker automatisiert ausführen.
Mathias