Comment changer la couleur de la case étiquette en appuyant cochée/décochée de l'état sur le clic
Je suis en train de changer la couleur de police et la couleur de fond de mon étiquette de checkbox quand j'ai cocher ou décocher. J'ai trouvé une solution d'activer javascript sur ce site mais je n'ai pas été en mesure de rendre le code du travail. Voici ce que j'ai essayé jusqu'à présent. Maintenant, c'est d'attacher le "highlight" de la classe à la div parent et je veux seulement l'étiquette de changer. Merci pour votre temps.
HTML:
<div class="checkboxes">
<input type="checkbox" name="1" id="option one" value="orange"><label for="1" class="highlight">Orange</label>
<input type="checkbox" name="2" id="option two" value="apple"><label for="1" class="highlight">Apple</label>
</div>
JavaScript:
$( '.checkboxes' ).on( 'click', 'input:checkbox', function () {
$( this ).parent().toggleClass( 'highlight', this.checked );
}); //end checkbox style
CSS:
.checkboxes label {
font-family:Open Sans Italic;
font-size: 12px;
color: #666;
border-radius: 20px 20px 20px 20px;
background: #f0f0f0;
padding: 3px 10px;
text-align: left;
}
.highlight {
font-family:Open Sans Italic;
font-size: 12px;
color: white;
border-radius: 20px 20px 20px 20px;
background: #86b3c1;
padding: 3px 10px;
text-align: left;
}
OriginalL'auteur Ansh | 2012-07-22
Vous devez vous connecter pour publier un commentaire.
L'étiquette vient après la case, votre code semble être destiné à un label qui est d'emballage de la case, comme suit:
De modifier le html ou modifier le JS pour cible l'élément suivant et pas le plus proche parent de l'élément:
Aussi, votre CSS est défectueux, et le ciblage de l'étiquette directement prendra presedence sur le point culminant de la classe, de sorte qu'il ne changera jamais de couleur, même si la classe est appliquée.
Ici un violon, j'ai corrigé en étant plus précis lorsque le ciblage de la highligth classe:
VIOLON
Et Raminson est correct, vous devez cibler la case avec des crochets et type="".
J'ai déjà répondu à ça, mais j'ai édité la réponse et le violon pour montrer comment.
vous pouvez modifier le css sélecteur de
.highlight
àlabel.highlight
.merci! qui fonctionne. merci pour le css faille. je vais corriger cela d'abord pour faire ce travail correctement
OriginalL'auteur adeneo
Vous pouvez le faire en utilisant simplement CSS:
démo http://dabblet.com/gist/3157721
Aussi, tout en produisant la démo que j'ai remarqué un couple de questions:
id="option one"
- l'id doit être unique et vous ne pouvez pas avoir des espacesfor
attribut de lalabel
devrait être leid
(pasname
) de l'correspondantinput
; cela vous permet également de cocher/décocher la case à cocher en cliquant sur l'étiquette et non sur la case elle-mêmewow. merci. vraiment facile!
merci encore! la démo est vraiment utile. j'ai corrigé le
for
et l'id.OriginalL'auteur Ana
closest()
ne trouve pas l'élément le plus proche de l'élément sélectionné. il trouve que le parent le plus proche, vous pouvez utilisernext()
méthode, essayez les solutions suivantes:veuillez noter que
:checkbox
sélecteur estdeprecated
.OriginalL'auteur undefined