Проблема не в том, имеет ли функция имя или нет, а в том, существует ли на самом деле удаляемая функция как обработчик элемента для этого события. Вы по-прежнему создаете функцию каждый раз, поэтому someFunction
, созданный одним вызовом openTaskPopUp
, не совпадает с функцией someFunction
, созданной следующим вызовом, поэтому он не удаляется.
Вам необходимо запомнить назначенную вами функцию, чтобы удалить ее. Например:
const keyUpEvent = (e, someString) => {
if(e.keyCode === 13){
console.log(someString);
}
};
let openTaskPopUpKeyupHandler = null; // ***
const openTaskPopUp = (e) => {
const someString = "abc";
someButton.removeEventListener('keyup' , openTaskPopUpKeyupHandler); // ***
openTaskPopUpKeyupHandler = (event) => { // ***
keyUpEvent(event,someString);
}
someButton.addEventListener('keyup' , openTaskPopUpKeyupHandler); // ***
//code
};