У меня есть две формы, одна на логин, другая на регистрацию, как я могу без дубляжа кода отслеживать сразу несколько кликов для дальнейших действий?
На данный момент у меня такая логика:
// смена табов логина/регистрации
const login = document.querySelector('.link-login');
const register = document.querySelector('.link-register');
const formContainer = document.querySelectorAll('.form-login__form-wrapper');
login.addEventListener('click', (e) => {
const active = document.querySelector('.form-login__header-link.active');
e.preventDefault();
if (login !== active) {
login.classList.toggle('active');
register.classList.toggle('active');
formContainer[0].classList.toggle('none');
formContainer[1].classList.toggle('none');
}
});
register.addEventListener('click', (e) => {
const active = document.querySelector('.form-login__header-link.active');
e.preventDefault();
if (register !== active) {
register.classList.toggle('active');
login.classList.toggle('active');
formContainer[0].classList.toggle('none');
formContainer[1].classList.toggle('none');
}
});
Но на мой взгялд это очень плохое решение, ведь если добавится ещё один таб или количество форм вырастет, то код будет дублироваться.
Я бы хотел отслеживать клик на табы логина и регистрации и в зависимости от того, на какой был клик - показывать ту форму. Я пытался решить вопрос через forEach, но я так понял он при запуске скрипта отрабатывает один раз и всё, так же мне кажется бесконечный цикл не вариант - систему повесит, что я могу сделать?