jQuery zum Aktivieren und Deaktivieren von Kontrollkästchen wird nur einmal ausgelöst

8

Ich habe eine sehr einfache Anforderung für meine jQuery: eine Reihe von Kästchen zu überprüfen, wenn eine Optionsschaltfläche aktiviert ist, und alle zu löschen, wenn eine andere markiert ist.

Die jQuery funktioniert, aber es funktioniert nur einmal - das heißt, wenn ich klicke, um alle zu überprüfen (alle Kästchen check) und dann klicke, um sie zu löschen (alle Kästchen sind leer), und klicke erneut, um alle zu überprüfen - da ist Kein Effekt. Ähnlich, wenn ich einige Kästchen manuell deaktiviere, dann klicke, um alle wieder auszuwählen, es gibt keinen Effekt.

jQuery

%Vor%

HTML

%Vor%

jsFiddle Ссылка

    
Gideon 04.02.2013, 03:53
quelle

2 Antworten

30

Ändern Sie .attr() in .prop() .

%Vor%

jsFiddle-Beispiel

Sie können dies auch auf nur reduzieren:

%Vor%

jsFiddle-Beispiel

Wie die Dokumente für .attr () angeben:

  

Ab jQuery 1.6 gibt die Methode .attr () undefined für Attribute zurück   das wurde nicht festgelegt. Zum Abrufen und Ändern von DOM-Eigenschaften wie z   Der geprüfte, ausgewählte oder deaktivierte Zustand von Formularelementen verwenden Sie   .prop () Methode.

    
j08691 04.02.2013, 03:56
quelle
2

Ich weiß, dass dies hier sehr viel getäuscht wurde, aber ich habe etwas vermisst, ich hatte:

%Vor%

Und wie oben erwähnt, müssen ALLE Fälle von attr für prop ()

getauscht werden %Vor%

Ich hoffe, das hilft jemandem ...

    
Mike Wells 03.12.2013 16:24
quelle

Tags und Links