Итак, я делаю клон тетриса, и у меня есть эта функция, которая устанавливает прослушиватели событий для всех элементов при вызове tey.Проблема заключается в том, что мне нужно вызвать обработчики событий remove, потому что они продолжают складываться, я как-то обошел это, но есть проблема, что слушатели активны, даже если элемент, который не активен, изменяется, поэтому мне нужно вызватьудалить eventlistener, но я не знаю, как это сделать без анонимной функции, не меняя все это.На самом деле я вообще не знаю, как это сделать.Если кто-нибудь может помочь мне и предложить элегантное решение, я был бы очень благодарен.В любом случае вот код:
const [space, left, up, right, down] = [32, 37, 38, 39, 40];
const setupEventListeners = function(el) {
document.addEventListener('keydown', function(event) {
if (event.keyCode === up || event.which === up) {
if (testing.collisionRotate(testing.landed, el) !== 0) {
// el.rotate();
}
} else if (event.keyCode === left || event.which === left) {
if (testing.collisionLeft(testing.landed, el) !== 0) {
el.left();
}
} else if (event.keyCode === right || event.which === right) {
if (testing.collisionRight(testing.landed, el) !== 0) {
el.right();
}
} else if (event.keyCode === down || event.which === down) {
if (testing.collisionDown(testing.landed, el) !== 0) {
el.down();
}
} else if (event.keyCode === space || event.which === space) {
}
el.draw();
});
}
// it's called like that
setupEventListeners(randTet);
Спасибо за любой вклад и любую идею.PS Я немного новичок в программировании, поэтому у меня нет большого опыта, так что спасибо, ДЕЙСТВИТЕЛЬНО!