@olya_097

Можно ли это как то упростить?

если да
то как именно
https://jsfiddle.net/fg1cz3sw/1/
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
daemonhk
@daemonhk
ПсиХоПат
$('.main-header__button').each(function(){
  var btn = $(this);
  btn.off('click').on('click', function(e) {
    btn.parent().find('.main-header__input').trigger('focus');
    btn.parent().find('.main-header__search').addClass('main-header__search-active');
  });
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
like-a-boss
@like-a-boss
Признайся,тебяТянетНаКодМужика,ты—программный гей
Не совсем прямой ответ на ваш вопрос, скорее совет, как сэкономить память, сделать код расширяемым и оценить преимущества делегирования:

document.addEventListener('click', function (event) {

	switch (event.target.className) { // или
																    // var class = event.target.classList;
		case 'main-header__button':     // и в кейсах проверять class.contains('main-header__button')
			doSomething(event.target);
			break;

		case '...':
			...
			break;

		...

	}

});

function doSomething(target) {
	// выбрать в вашем случае относительно таргета, к примеру это сосед:
	target.nextElementSibling.focus();
	// выбрать в вашем случае относительно таргета, к примеру это сосед:
	target.previousElementSibling.classList.add('main-header__search-active');
}


И да, выбросьте в помойку джейквери, ему пора на покой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы