2017-02-23 9 views
-3

Ich erstellen zur Laufzeit eine Reihe von Radio-Buttons in ihren Etiketten verschachtelt.HTML-Radio-Schaltflächen zur Laufzeit Feuerwechsel nur zum ersten Mal

Dann verbinde ich ein Ereignis bei Änderung: es wird nur bei der ersten Änderung ausgelöst: wenn ich ein zweites Mal auf dieses Optionsfeld klicke, passiert es nicht - auch wenn ich in der Zwischenzeit ein anderes Optionsfeld angeklickt habe.

Ich bin mit jQuery 3.x, Bootstrap 3.3.7 und läuft auf neuesten Chrome auf OSX

Wo soll ich anfangen Untersuchung von?

+1

Das JavaScript. Es ist wahrscheinlich das JavaScript. Wir können Ihnen mehr helfen, aber nur wenn Sie Ihren [mcve] Code mit uns teilen. –

Antwort

1

Sie müssen den Ereignis-Listener an das Optionsfeld binden, wenn das Element geändert wurde und das Element nicht mehr auf das Element wartet.

Eine Lösung für dieses Problem ist die Verwendung eines Delegaten. Kasse des doc unten, da Sie jQuery verwenden,

http://api.jquery.com/delegate/

$("table").on("click", "td", function() { 
    $(this).toggleClass("chosen"); 
}); 

In einfachen Begriff, delegiert das Ereignis an die Eltern bindet (nicht notwendig, die direkten eins), und wenn das Zielelement (entweder vorhandenes Element an Dokument bereit ODER dynamisch generiertes Element zur Laufzeit) Klicken Sie auf das Ereignis Get Bubble Up. Ihr Delegierter (table in dem obigen Beispielcode) wird das Ereignis abfangen und bestimmte Aufgabe (n) ausführen.

Verwandte Themen