Lorsque je coche une case, je veux qu'elle soit activée <p>
#0099ff
.
Lorsque je décoche la case, je veux l'annuler.
Code que j'ai jusqu'à présent:
$('#checkbox').click(function(){
if ($('#checkbox').attr('checked')) {
/* NOT SURE WHAT TO DO HERE */
}
})
.click()
est appelée lors de l'événement click. Par conséquent, je ne comprends pas ce que vous entendez par «activer» et «désactiver». Si la case est cochée, vous pouvez appeler la fonctiona()
. Mais vous devez écrire la fonction inverse à invoquer lorsque la case n'est pas cochée. Je suis confus..bind()
et des.unbind()
événements à un autre élément en fonction de l'état de la case à cocher. C'est ce que vous recherchez?prop()
pour ce que cette question voulait utiliserattr()
; laprop()
méthode n'avait pas été créée à l'époque. Les réponses surthis.checked
sont probablement encore utiles, cependant.Réponses:
J'utiliser
.change()
etthis.checked
:-
Sur l'utilisation d'
this.checked
Andy E a fait un excellent article sur la façon dont nous avons tendance à abuser de jQuery: utiliser la puissance impressionnante de jQuery pour accéder aux propriétés d'un élément . L'article traite spécifiquement de l'utilisation de,
.attr("id")
mais dans le cas où il#checkbox
s'agit d' un<input type="checkbox" />
élément, le problème est le même pour$(...).attr('checked')
(ou même$(...).is(':checked')
) vsthis.checked
..la source
Essaye ça.
Parfois, nous exagérons jquery. Beaucoup de choses peuvent être réalisées en utilisant jquery avec du javascript brut.
la source
Il peut arriver que "this.checked" soit toujours "on". Par conséquent, je recommande:
la source
$(':checkbox')
que cela fonctionne;)c'est mieux si vous définissez une classe avec une couleur différente, alors vous changez de classe
de cette façon, votre code est plus propre car vous n'avez pas à spécifier toutes les propriétés css (disons que vous voulez ajouter une bordure, un style de texte ou autre ...) mais vous changez simplement de classe
la source
$('#checkbox').attr('checked')
, cependant, si nous savons que#checkbox
c'est une case à cocher (sinon, l'ID est plutôt trompeur).this.checked
ça ira.J'ai trouvé une solution folle pour traiter ce problème de case à cocher non cochée ou cochée voici mon algorithme ... créer une variable globale disons var check_holder
check_holder a 3 états
Si la case est cochée,
Le code ci-dessus peut être utilisé dans de nombreuses situations pour savoir si une case a été cochée ou non. Le concept sous-jacent est de sauvegarder les états des cases à cocher dans une variable, c'est-à-dire quand elle est activée, désactivée. J'espère que la logique peut être utilisée pour résoudre votre problème.
la source
Vérifiez ce code:
la source
la source
Vous pouvez probablement utiliser ce code pour entreprendre des actions car la case est cochée ou décochée.
la source
Je ferais :
Voir: https://www.w3schools.com/jsref/prop_checkbox_checked.asp
la source
Implémentation optimale
Démo
la source
Pourquoi ne pas utiliser les événements intégrés?
la source