Показать сообщение отдельно
  #1 (permalink)  
Старый 07.08.2017, 11:19
Новичок на форуме
Отправить личное сообщение для alifanov Посмотреть профиль Найти все сообщения от alifanov
 
Регистрация: 07.08.2017
Сообщений: 3

Как правильно организовать обработчик на клик и keydown?
$(function() {

	function makeSound(e) {
		var code = e.keyCode ? e.keyCode : this.getAttribute("data-key");  
		var activeKey = document.querySelector('.key[data-key="'+code+'"]');
		var activeAudio = document.querySelector('audio[data-key="'+code+'"]');
		if (!activeAudio) return;
		activeAudio.currentTime = 0;
		activeAudio.play();
		activeKey.classList.add('active');
	}

  window.addEventListener('keydown', makeSound); //(1)

  var allKeys = document.querySelectorAll(".key"); 

  allKeys.forEach(function (key) {
  	key.addEventListener('click', makeSound);	
  })

  allKeys.forEach(function (key) { //(2)
  	key.addEventListener('transitionend', function (e) {
  		if(e.propertyName !== 'transform') return;
  		this.classList.remove("active");
  	});
  });
});


Здраствуйте!
Делал пример из курса, там был обработчик(1) на клавиатуру, при нажатии на определенный .key запускал аудио и добавлял класс active, также для каждого элемента key существует обработчик для очистки от класса (2). Скажите как мне реализовать подобное для клика? У меня все работает, да только класс после клика не удаляется. Почему так происходит?
Ответить с цитированием