Я немного новичок в Javascript и не могу понять, что именно происходит с моими функциями.
Справочная информация: мой сценарий должен позволять вам назначать класс «toggler» или «toggled» элементу, чтобы они автоматически связывались, поэтому проверка / снятие флажка с переключателя покажет / скрыт переключение (язнаю, что есть много библиотек, которые могут сделать это, но, к сожалению, я не могу использовать их в этом случае)
Сценарий выполняется при загрузке страницы и ищет элементы с классом "toggler", а затем назначает его по щелчку мыши.обработчик соответственно.Вот фрагмент кода, с которым у меня возникают проблемы:
function makeToggle () {
for (i=0;i<toggler.length;i++) {
toggler[i].onclick=function(){toggleSection(this,i)};
}
}
function toggleSection(obj,index) {
if (obj.checked==true) {
toggled[index].style.display="inline-block";
} else {
toggled[index].style.display="none";
}
}
«This» передается корректно и разрешается в любом флажке, к которому он применяется, но «index» всегда устанавливается равным длине массива-переключателявместо того, чтобы увеличиваться.Например, первое и второе нажатие переключателей должно быть:
onclick="toggleSection(this,0)"
onclick="toggleSection(this,1)"
Для чего они фактически установлены (при условии, что у меня есть 5 элементов, определенных как переключатели):
onclick="toggleSection(this,5)"
onclick="toggleSection(this,5)"
Из того, что я прочитал, я думаю, что это проблема с областью видимости, или способ, которым я вызываю функцию, но ничего, что я нашел, не имеет большого смысла