Вы передаете event
не так, как объект Event передается вашему EventListener, а как аргумент bind, который в любом случае бесполезен в этом случае, потому что вы привязываетесь к глобальному контексту, а ваша функция не содержит Ключевое слово this
.
selectionArea.addEventListener("click", removeWarningStyles.bind(null, event, sizeTiles,warning));
Должно быть действительно
selectionArea.addEventListener('click', e=>{
removeWarningStyles(e, sizeTiles, warning);
});
На самом деле, я хотел бы сделать
selectionArea.onclick = e=>{
removeWarningStyles(e, sizeTiles, warning);
}
, потому что это проще удалить или перезаписать событие .
PS
Помните, что only Объект события передается в качестве аргумента функции eventListener, а контекст this
объекта Функция eventListener - это Объект, к которому, как обычно, принадлежит метод, который в данном случае является Элементом. Вы также должны знать, что при вызове другой функции внутри функции eventListening ее контекст this
не становится связанным с Элементом. Функции со стрелками, конечно, работают по-разному, поскольку их this
поднимается до уровня области действия, где он остается, поэтому связывание с ними бессмысленно. Другими словами, вы не можете использовать this.value
или this.style.color
в функции стрелки, как вы можете использовать в обычной функции, которая является EventListener.