У меня есть следующий код, который используется для изменения css div на основе того, установлен ли флажок или нет, поэтому у меня есть несколько div с несколькими флажками. У меня также есть флажок, сохраненный в cookie, поэтому у меня есть дополнительный код для обновления div на pageload. Есть ли более эффективный способ сделать это, кроме повторения одного и того же кода каждый раз для каждого индивидуального идентификатора?Как уменьшить повторяющийся код в jquery?
Вот пример первых двух блоков обоих разделов моего кода. Оба повторяются с первого до 100 экземпляров в зависимости от количества флажков на странице. Это не огромный файл, но мне кажется, что, вероятно, лучший способ сделать это, о котором я не знаю.
$('#check_1').click(function() {
if($('#check_1').is(':checked')) {
$('#gs_wrap1').addClass('fade');
$('#collect1').removeClass('notcollected');
$('#collect1').addClass('collected');
} else {
$('#gs_wrap1').removeClass('fade');
$('#collect1').removeClass('collected');
$('#collect1').addClass('notcollected');
}
});
$('#check_2').click(function() {
if($('#check_2').is(':checked')) {
$('#gs_wrap2').addClass('fade');
$('#collect2').removeClass('notcollected');
$('#collect2').addClass('collected');
} else {
$('#gs_wrap2').removeClass('fade');
$('#collect2').removeClass('collected');
$('#collect2').addClass('notcollected');
}
});
if($('#check_1').is(':checked')) {
$('#gs_wrap1').addClass('fade');
$('#collect1').removeClass('notcollected');
$('#collect1').addClass('collected');
} else {
$('#gs_wrap1').removeClass('fade');
$('#collect1').removeClass('collected');
$('#collect1').addClass('notcollected');
}
if($('#check_2').is(':checked')) {
$('#gs_wrap2').addClass('fade');
$('#collect2').removeClass('notcollected');
$('#collect2').addClass('collected');
} else {
$('#gs_wrap2').removeClass('fade');
$('#collect2').removeClass('collected');
$('#collect2').addClass('notcollected');
}
HTML код нижеследовал:
<input class="inputbox" type="checkbox" name="check_1" id="check_1">
<label for="check_1">
<div class="notcollected" id="collect1"></div>
<div class="gs_wrap" id="gs_wrap1">
<div class="gs_list_headimg"></div>
<div class="gs_list_description"></div></div></label>
<input class="inputbox" type="checkbox" name="check_2" id="check_2">
<label for="check_2">
<div class="notcollected" id="collect2"></div>
<div class="gs_wrap" id="gs_wrap2">
<div class="gs_list_headimg"></div>
<div class="gs_list_description"></div></div></label>
Вы можете, конечно, сушить это, однако нам нужно будет увидеть, как ваш HTML знает, как его пересечь. Вы можете изменить свой вопрос, чтобы включить его. –
Можете ли вы разместить свою структуру html. Было бы очень полезно ответить на это правильно. – AdityaParab
Я включил HTML. – user1342220