Ich habe eine Dauer von beispielsweise 3 Tagen und 7 Kontrollkästchen, die jeden Tag in einer Woche darstellen. Ich möchte in der Lage sein, einen Tag zu überprüfen, und dann die nächsten 2 Tage (3 Tage insgesamt) ausblenden.jQuery Anzahl der Tage berechnen und Kontrollkästchen ausblenden
Wenn wir eine Dauer von 3 Tagen betrachten: ich Montag prüfen, dann Mittwoch Dienstag & werden ausgeblendet. dann kann ich Donnerstag überprüfen, dann Freitag & Samstag versteckt werden:
Ich schrieb die folgende, die teilweise funktioniert:
var toHide = new Array(0,0,0,0,0,0,0,0);
$('.days').change(function() {
var val = $(this).val();
var duration = $('#duration').val();
if($('#check'+val).prop('checked')) {
scheduleSelection(val,duration,'on');
}else{
scheduleSelection(val,duration,'off');
}
});
function scheduleSelection(id,duration,mode) {
var totalDays = duration;
if(totalDays>1) {
totalDays--;
var next = parseInt(id)+1;
for(i=1;i<=totalDays;i++) {
if(next>7) { next = 1; }
if(mode=='on') {
toHide[next] = 1;
$('#check'+next).hide();
}else{
toHide[next] = 0;
$('#check'+next).show();
}
next++;
}
}
}
Das Problem hier ist, wenn Sie Montag waren dann zu prüfen, Dienstag & Mittwoch wird versteckt sein, aber wenn Sie dann Samstag überprüfen, gibt es eine Kollision als Sonntag & Montag wird ausgeblendet werden, noch Dienstag & Mittwoch bleibt ausgeblendet:
Bitte sehen jsFiddle
Alle Zeiger in die richtige Richtung geschätzt
Was passiert, wenn auf "Sun" geprüft wird? – ameenulla0007
Was ist Ihr erwartetes Ergebnis? –
Bei der Überprüfung Sonntag, gibt es eine Überschneidung von Montag (die bereits aktiviert ist), so ID wie Montag zu deaktivieren, und halten nur Montag, Dienstag versteckt – JPJens