Я новичок в JavaScript, и я делаю проект, следуя обучающему видео.
Я не могу понять, как добавить eventlisntner к нескольким элементам. Этот код ниже, когда происходит keydown, .playing из css добавит к ключевой переменной.
window.addEventListener('keydown', function(e){
const audio = document.querySelector(`audio[data key="${e.keyCode}"]`)
if(!audio){
return;
}
const key = document.querySelector(`.key[data-key="${e.keyCode}"]`)
audio.currentTime = 0;//rew ind to the start
audio.play();
key.classList.add('playing');
})
, и это код удаления стиля css из них, и он будет работать сразу, когда код выше работает.
function removeTransition(e){
if (e.propertyName !== 'transform') return;//skip if its transform
this.classList.remove('playing')
}
const keys = document.querySelectorAll('.key');
keys.forEach(key => key.addEventListener('transitionend', removeTransition));
, но когда я удаляю .playing из HTML, почему я должен добавить forEach для addEventListner? Инструктор говорил, что мне нужно указать какой ключ, но мне интересно, почему первый код работает без forEach, хотя в нем есть несколько элементов.
. Это игра в css
.playing {
transform: scale(1.1);
border-color: #ffc600;
box-shadow: 0 0 1rem #ffc600;
}
Я надеюсь, что вы, ребята, могли бы решить этот вопрос, большое спасибо.