Ich habe ein Skript, das ich hart arbeitete, aber es ist ziemlich hässlich, aber es funktioniert. Sie können alle Kontrollkästchen aktivieren (mit .select-all), und wenn eines dieser Kontrollkästchen (.chk-box) deaktiviert ist, wird auch die Option .select-all deaktiviert. Außerdem wird das .select-all auch ein div (.hidethis) verbergen. Ich bin im Lernzustand, also wenn jemand (wenn einfach) mir einen schöneren Code mit dieser Funktionalität zeigen kann, ist es sehr willkommen! Es kann mir viel lernen!Dieses Skript funktioniert, wie ich will, aber seine hässliche
<script type="text/javascript">
$("document").ready(function()
{
if($(".select-all").is(":checked"))
{
$(".hidethis").hide();
}
else
{
$(".hidethis").show();
}
});
$(".select-all").change(function()
{
if (this.checked)
{
$(".chk-box").prop('checked', $(this).prop("checked"));
$(".hidethis").hide();
}
else
{
$(".chk-box").removeAttr("checked");
$(".hidethis").show();
}
});
$(".chk-box").change(function()
{
if($(".chk-box").length == $(".chk-box:checked").length)
{
$(".select-all").prop('checked', $(this).prop("checked"));
$(".hidethis").hide();
}
else
{
$(".select-all").removeAttr("checked");
$(".hidethis").show();
}
});
</script>
'$ (" hidethis") bereit()' sollte '$ (document) .ready()' sein. jQuery ignoriert das Element, an das Sie den '.ready()' - Handler binden, da dies nur für das Dokument sinnvoll ist. – Barmar
Es gibt nur eine '.select-all'-Checkbox, oder? Also benutze einfach 'if ($ (". Select-all"). Is (": checked")) 'um zu testen, ob es aktiviert ist. Und im Handler '.change()' können Sie einfach 'if (this.checked)' verwenden. – Barmar
Danke, die ersten beiden Dinge korrigiert. Ich bin mir nicht sicher, was Sie mit dem '.change()' Handler denken. Was sollte 'if (this.checked)' ersetzen? –