私は例えば3日間の期間を持ち、1週間に各日を表す7つのチェックボックスを持っています。 私はある日チェックし、次の2日間(合計3日間)隠すことができるようにしたい。jQueryは日数を計算し、チェックボックスを非表示にします
私たちは3日間の期間を検討している場合: を私は水曜日が非表示になります火曜日&そして、月曜日チェック。 木曜日チェック私は、その後、その後、金曜日&土曜日が隠されることができます。
私は部分的に動作し、以下の書いた:あなたは月曜日をチェックした場合、ここで問題がある
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++;
}
}
}
を火曜日&水曜日は隠されますが、土曜日を確認すると、日曜日&月曜日が突然に非表示になりますが、火曜日の水曜日は&水曜日は非表示のままです:
プレビューの日にも隠して隠し要素は良い解決策になる可能性のチェックを外した場合に右方向にjsFiddle
を参照してください任意のポインタは、たぶん
「太陽」のチェックボックスをオンにするとどうなりますか? – ameenulla0007
あなたの期待どおりの結果は? –
日曜日にチェックすると、monday(既にチェックされています)の重複がありますので、mondayのようにidをオフにして、月曜日のみ火曜日を隠します – JPJens