Показать сообщение отдельно
  #1 (permalink)  
Старый 13.09.2022, 17:34
Аспирант
Отправить личное сообщение для Andy_kun Посмотреть профиль Найти все сообщения от Andy_kun
 
Регистрация: 05.08.2022
Сообщений: 64

removeEventListener - для всех событий
Извините, подскажите пожалуйста, вот есть такой код:


function my_func_addAllEventListeners_callback(element_for_eventlistener)   
{
    return function my_func_event(event) 
    {
               console.log("my_func_event");
               for (const key in element_for_eventlistener) 
               {

                   if(key.startsWith('on'))
                   {
                     element_for_eventlistener.removeEventListener(key.slice(2), my_func_event); 
                   } 

               }
         
    }
}
    


//---------------------------------------------------------------------------------


    
let element_for_eventlistener = document;   

    
 for (const key in element_for_eventlistener) 
     {

         if(key.startsWith('on'))
         {
        element_for_eventlistener.addEventListener(key.slice(2), my_func_addAllEventListeners_callback(element_for_eventlistener));  
         } 
     }


То есть я запускаю прослушиватель на всех событий и сразу же после первого срабатывания - я их пытаюсь удалить, НО callback все равно срабатывает более одного раза.

Не могу понять почему ? Ведь я же в первый вызов callback - по идее удаляю все событияс элемента.
Ответить с цитированием