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 - по идее удаляю все событияс элемента.  | 
	
		
 У вас куча прослушивателей. Для каждого события свой прослушиватель. 
	А удалить вы пытаетесь у всех событий только тот прослушиватель, который сработал  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 А вы именно этого хотите? Навешать на все возможные события свои прослушиватели (на каждое событие свой), и как только случится первое событие (любое) снять их все?  | 
	
		
 Цитата: 
	
  | 
	
		
 Да, каждый навешанный сохраняй в массив, а потом все циклом снимай. 
	И используй camelCase бога ради, глаза кровоточат.  | 
	
		
 Спасибо! 
	 | 
	
		
 Вот так можно без всякого массива 
	
function my_func_addAllEventListeners_callback(element_for_eventlistener)  
{
    return function my_func_event(event)
    {
               console.log("my_func_event");
               controller.abort()  // послать сигнал - снимаем все обработчики
     }
}
     
 
 
//---------------------------------------------------------------------------------
 
 
const controller = new AbortController();  
  
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),
               { signal: controller.signal } // снять обработчик, когда придет сигнал от контролера.
          ); 
         }
     }
 | 
	
		
 voraa, совсем свежая фича, удобно.) 
	Чуть облагородил код: 
const controller = new AbortController();  
function addAllEventListenersCallback(event) {
  console.log("my_func_event", event.type, event.target);
  controller.abort()  // послать сигнал - снимаем все обработчики
}
let elementForEventlistener = document;  
for (const key in elementForEventlistener) {
  if (key.startsWith('on')) {
    elementForEventlistener.addEventListener(key.slice(2), addAllEventListenersCallback, controller); 
  }
}
 | 
	
		
 Aetae, 
	:thanks:  | 
| Часовой пояс GMT +3, время: 13:50. |