Wenn ich ein Kontrollkästchen aktiviere, soll es sich drehen <p>
#0099ff
.
Wenn ich das Kontrollkästchen deaktiviere, soll es rückgängig gemacht werden.
Code, den ich bisher habe:
$('#checkbox').click(function(){
if ($('#checkbox').attr('checked')) {
/* NOT SURE WHAT TO DO HERE */
}
})
.click()
wird beim Klickereignis aufgerufen. Daher verstehe ich nicht, was Sie unter "Aktivieren" und "Deaktivieren" verstehen. Wenn das Kontrollkästchen aktiviert ist, können Sie die Funktion aufrufena()
. Sie müssen jedoch die Umkehrfunktion schreiben, um sie aufzurufen, wenn das Kontrollkästchen nicht aktiviert ist . Ich bin verwirrt..bind()
und.unbind()
Ereignisse zu einem anderen Elemente auf dem Checkbox Zustand basieren. Ist es das, wonach du suchst?prop()
wofür diese Frage verwendet werden wollteattr()
. Dieprop()
Methode war damals noch nicht erstellt worden. Die Antworten dazuthis.checked
sind jedoch wahrscheinlich immer noch nützlich.Antworten:
Ich würde verwenden
.change()
undthis.checked
:- -
Über die Verwendung von
this.checked
Andy E wurde ausführlich beschrieben, wie wir dazu neigen, jQuery zu überbeanspruchen: Nutzen Sie die unglaubliche Leistung von jQuery, um auf Eigenschaften eines Elements zuzugreifen . Der Artikel behandelt speziell die Verwendung von,
.attr("id")
aber in dem Fall, dass#checkbox
es sich um ein<input type="checkbox" />
Element handelt , ist das Problem für$(...).attr('checked')
(oder sogar) dasselbe$(...).is(':checked')
) vs.this.checked
.quelle
Versuche dies.
Manchmal übertreiben wir jquery. Viele Dinge können mit jquery mit einfachem Javascript erreicht werden.
quelle
Es kann vorkommen, dass "this.checked" immer "on" ist. Daher empfehle ich:
quelle
$(':checkbox')
damit es funktioniert;)Wenn Sie eine Klasse mit einer anderen Farbe definieren, wechseln Sie die Klasse
Auf diese Weise ist Ihr Code sauberer, da Sie nicht alle CSS-Eigenschaften angeben müssen (sagen wir, Sie möchten einen Rahmen, einen Textstil oder einen anderen hinzufügen ...), sondern nur eine Klasse wechseln
quelle
$('#checkbox').attr('checked')
, aber wenn wir wissen , dass#checkbox
ist ein Kontrollkästchen (falls nicht, wird die ID eher irreführend).this.checked
Wird besorgt.Ich habe eine verrückte Lösung für den Umgang mit diesem Problem gefunden, bei dem das Kontrollkästchen hier nicht aktiviert oder aktiviert ist. Hier ist mein Algorithmus ... Erstellen Sie eine globale Variable, sagen wir var check_holder
check_holder hat 3 Zustände
Wenn das Kontrollkästchen aktiviert ist,
Der obige Code kann in vielen Situationen verwendet werden, um herauszufinden, ob ein Kontrollkästchen aktiviert wurde oder nicht. Das Konzept dahinter besteht darin, die Kontrollkästchenzustände in einer Variablen zu speichern, dh wenn sie aktiviert oder deaktiviert ist. Ich hoffe, die Logik kann verwendet werden, um Ihr Problem zu lösen.
quelle
Überprüfen Sie diesen Code:
quelle
quelle
Wahrscheinlich können Sie mit diesem Code Aktionen ausführen, wenn das Kontrollkästchen aktiviert oder deaktiviert ist.
quelle
Ich würde tun:
Siehe: https://www.w3schools.com/jsref/prop_checkbox_checked.asp
quelle
Optimale Implementierung
Demo
quelle
Warum nicht die eingebauten Ereignisse nutzen?
quelle