Ich versuche, eine eindeutige Hintergrundfarbe auf die Beschriftung der Kontrollkästchen hinzuzufügen, wenn sie angeklickt werden (die Kontrollkästchen selbst sind ausgeblendet). Ich kann es bekommen, um die Hintergrundfarbe hinzuzufügen, aber es wird es nicht entfernen, sobald es angewandt wird. Was ich habe (https://jsfiddle.net/9oq88dro/):Hinzufügen/Entfernen einer Hintergrundfarbe mit jQuery und html5 Datenattribute
CSS
label {user-select:none}
input {position: absolute; left: -9999px;}
HTML
<div class="container">
<input id="1" type="checkbox" value="test 1"><label for="1" data-color="red">test 1</label>
<input id="2" type="checkbox" value="test 2"><label for="2" data-color="blue">test 2</label>
<input id="3" type="checkbox" value="test 3"><label for="3" data-color="green">test 3</label>
</div>
jQuery
$('.container label').on('click', function() {
if ($(this).css('background-color', '')) {
$(this).css('background-color', $(this).data("color"));
} else {
$(this).css('background-color', '');
}
});
'CSS (Schlüssel, Wert)' ist der Setter. Wollten Sie 'css (key)' verwenden, um den Wert von 'background-color' zu erhalten? – Taplar
Zuerst habe ich nur versucht zu überprüfen, ob die Eingabe überprüft wurde oder nicht. Ich wusste nicht, wie man einen Selektor für die Eingabe basierend auf dem Etikett, auf das geklickt wurde, machte, also überprüfte ich das Etikett auf keinen Hintergrund. Da sollte es keinen geben, wenn die Box nicht überprüft wurde. –
Ist es nicht einfacher, Eingaben und Text in '