Здравствуйте.
Подскажите, как сделать, чтобы не дублировать этот код:
var showError = function(el) {
el.parentNode.classList.remove('error');
el.parentNode.classList.add('success');
el.nextElementSibling.InnerHTML = element.dataset.error;
}
var showSuccess = function(el) {
el.parentNode.classList.remove('error');
el.parentNode.classList.add('success');
el.nextElementSibling.InnerHTML = '';
}
Ответ
function getClassSwitcher(classOff, classOn, getErrorMsg) {
return function(el) {
el.parentNode.classList.remove(classOff);
el.parentNode.classList.add(classOn);
el.nextElementSibling.innerHTML = getErrorMsg();
};
}
const showError = getClassSwitcher('success', 'error', () => element.dataset.error);
const showSuccess = getClassSwitcher('error', 'success', () => '');
Вариант попроще:
function toggleClasses(el, on, off) {
el.classList.remove(off);
el.classList.add(on);
}
const showError = function(el) {
toggleClasses(el.parentNode, 'error', 'success');
el.nextElementSibling.innerHTML = element.dataset.error;
}
const showSuccess = function(el) {
toggleClasses(el.parentNode, 'success', 'error');
el.nextElementSibling.innerHTML = '';
}
Комментариев нет:
Отправить комментарий