Sobes.tech
Junior

Ako odstrániť obsluhu udalosti?

sobes.tech AI

Odpoveď od AI

Existujú tri hlavné spôsoby:

  1. Použitie removeEventListener(): Najbežnejší a odporúčaný spôsob. Vyžaduje odovzdanie tých istých argumentov (typ udalosti, obslužná funkcia a možnosti), ako pri pridávaní pomocou addEventListener().

    // Príklad pridania
    const element = document.getElementById('myElement');
    const handler = () => {
      console.log('Kliknuté');
    };
    element.addEventListener('click', handler);
    
    // Príklad odstránenia
    element.removeEventListener('click', handler);
    
  2. Priradenie null vlastnosti udalosti: Funguje iba pre inline obsluhy a tie, ktoré sú priradené cez vlastnosti objektu (napríklad onclick).

    // Pridanie cez vlastnosť
    const element = document.getElementById('myElement');
    element.onclick = () => {
      console.log('Kliknuté');
    };
    
    // Odstránenie
    element.onclick = null;
    
  3. Použitie removeListener() (Node.js): Používa sa na spracovanie udalostí v prostredí Node.js (napríklad pre inštancie EventEmitter).

    // Príklad v Node.js
    const { EventEmitter } = require('events');
    const myEmitter = new EventEmitter();
    
    const handler = () => {
      console.log('Udalosť sa stala');
    };
    
    myEmitter.on('myEvent', handler); // Pridanie
    myEmitter.removeListener('myEvent', handler); // Odstránenie
    

Dôležité je, aby ste pri používaní removeEventListener a removeListener odovzdali rovnakú referenciu na funkciu obsluhy, ktorú ste použili pri pridávaní. Odovzdanie anonymnej funkcie alebo novej funkcie s rovnakým obsahom nebude fungovať.