Страницы

Поиск по вопросам

пятница, 14 июня 2019 г.

Как сделать чтобы не дублировать код в JS?

Здравствуйте.
Подскажите, как сделать, чтобы не дублировать этот код:
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 = ''; }

Комментариев нет:

Отправить комментарий