Ich lade ein Formular und beziehe dynamisch eine Auswahl über AJAX aus einer PHP-Datei. Vor der Implementierung der dynamischen AJAX-Bestückungsauswahl funktioniert meine Änderungsfunktion (sie zeigt nur eine andere Eingabe an, wenn ein Benutzer "Andere" auswählt). Jetzt funktioniert die Änderungsfunktion nicht mehr.
Ich weiß, dass die Ready-Funktion ausgelöst wird, weil die jStepper-Funktionen ausgeführt werden. Ich habe das mit der Änderungsfunktion in und außerhalb der Bereit-Funktion versucht. Ich habe das Gefühl, dass die Change-Funktion geladen wird, bevor der AJAX-Befehl beendet ist, aber ist das wirklich wichtig?
%Vor%ändern Sie dies:
%Vor%bis
%Vor%EDIT3: Dies würde am besten nach einer Untersuchung Ihres Codes genauer aussehen:
%Vor%, da es am nächsten an das betreffende Element bindet.
Sie sollten auch den Ajax-Aufruf in das fertige Skript schreiben, das ich mir vorstellen würde.
Der Grund dafür ist, dass im DOM nichts zu binden ist, wenn es instanziiert wird. Wenn Sie auf diese Weise das Zeichen .on verwenden, binden Sie es stattdessen an das Dokument. Wenn Sie ein anderes "fixed" -Element hatten, das es umschließt, ist es besser, wenn Sie das anstelle von "document" verwenden, da dies wahrscheinlich eine bessere Leistung bringt.
BEARBEITEN: Beachten Sie, dass Sie die Verwaltung von Änderungsereignissen auch hinzufügen können, nachdem Sie das Element als Teil der Beendigung des Ajax-Aufrufs injiziert haben. Wenn Sie dies mehr als einmal tun, sollten Sie es in diesem Fall zuerst lösen.
EDIT2: da gibt es Fragen / Kommentare: AUS DER DOKUMENTATION: Ссылка
Viele delegierte Event-Handler am Anfang des Dokuments anhängen Baum kann die Leistung beeinträchtigen. Jedes Mal, wenn das Ereignis auftritt, muss jQuery Vergleichen Sie alle Selektoren aller angehängten Ereignisse dieses Typs mit allen Element im Pfad vom Ereignisziel bis zum Anfang des Ziels Dokument. Um eine optimale Leistung zu erzielen, hängen Sie delegierte Ereignisse an ein Dokument an Standort so nah wie möglich an den Zielelementen. Übermäßig vermeiden Verwendung von document oder document.body für delegierte Ereignisse auf large Dokumente.
Ich denke, das Element, an das Sie in der Zeile binden:
%Vor%existiert noch nicht im DOM, daher wird das Ereignis nicht gebunden.
Versuchen Sie es mit der Funktion .live :
%Vor%Oder stellen Sie sicher, dass Ihre DOM-Elemente vorhanden sind, bevor Sie versuchen, Ereignisse an sie zu binden.
Arbeitet aus dem Dokument bereit für Änderungen funktioniert Ajax-Funktionalität
%Vor%});
Tags und Links javascript jquery php ajax