Fehler bei der Verwendung von .prop() mit einer Variablen als ID-Selektor. Irgendwann schaue ich, ob das Kontrollkästchen aktiviert sein soll, wenn ausgewählt, und nicht aktiviert, wenn ausgewählt, während es aktiviert ist..prop() Kontrollkästchen mit Variablenauswahl nicht aktivieren
Dies ist Teil einer Status-/Stadtliste, die beim Klicken auf den übergeordneten Listeneintrag minimiert und erweitert wird.
Fiddle: https://jsfiddle.net/xeud8khg/
$('#expList input:checkbox').unbind('click').click(function() {
var clicked = "#" + event.target.id;
$(clicked).prop('checked', true);
console.log(clicked); //To see that the right id was selected.
return false;
});
Update: Gebrauchte Barmar Antwort Hin- und Herschalten der Checkbox und klicken auf dem Etikett hinzuzufügen. Ich bin sicher, es ist ein sauberer Weg, aber das funktionierte:
//Fake checkbox
$('#expList input:checkbox').off('mouseup').mouseup(function(event) {
var clicked = "#" + event.target.id;
if ($(clicked).is(':checked'))
$(clicked).prop('checked', false);
else
($(clicked).prop('checked', true));
return false;
});
//Fake label
$('#expList label').off('mouseup').mouseup(function(event) {
labelID = "#" + $(this).attr('for');
if ($(labelID).is(':checked'))
$(labelID).prop('checked', false);
else
($(labelID).prop('checked', true));
return false;
});
Aktualisiert Geige: https://jsfiddle.net/fasr5frp/
'.unbind()' veraltet ist, sollten Sie '.off()' verwenden. Und Sie können '$ (this)' oder '$ (event.target)' verwenden, anstatt nach der ID zu suchen. – Barmar
Wenn 'event' als globale Variable nicht portierbar ist, sollte es das Argument für den Callback sein. – Barmar
Wenn Sie nach '.prop()' einen Haltepunkt setzen, können Sie sehen, dass das Kontrollkästchen aktiviert ist, aber etwas deaktiviert es, nachdem die Funktion zurückkehrt. Ich bin mir nicht sicher, warum, weil Sie den Standard verhindern. – Barmar