Sobes.tech
Junior

Hogyan távolítjuk el az eseménykezelőt?

sobes.tech MI

Válasz az MI-től

Három fő módszer létezik:

  1. removeEventListener() használata: A leggyakoribb és ajánlott módszer. Ugyanazokat az argumentumokat kell átadni (eseménytípus, kezelőfüggvény és opciók), mint az addEventListener()-nél.

    // Hozzáadás példája
    const element = document.getElementById('myElement');
    const handler = () => {
      console.log('Kattintás');
    };
    element.addEventListener('click', handler);
    
    // Eltávolítás példája
    element.removeEventListener('click', handler);
    
  2. null érték hozzárendelése az eseményhez tartozó tulajdonságnak: Csak inline kezelőknél és azoknál működik, amiket az objektum tulajdonságaként rendeltek hozzá (pl. onclick).

    // Hozzáadás tulajdonságként
    const element = document.getElementById('myElement');
    element.onclick = () => {
      console.log('Kattintás');
    };
    
    // Eltávolítás
    element.onclick = null;
    
  3. removeListener() használata (Node.js): Alkalmazható eseménykezelésre Node.js környezetben (pl. EventEmitter példányoknál).

    // Node.js példában
    const { EventEmitter } = require('events');
    const myEmitter = new EventEmitter();
    
    const handler = () => {
      console.log('Esemény történt');
    };
    
    myEmitter.on('myEvent', handler); // Hozzáadás
    myEmitter.removeListener('myEvent', handler); // Eltávolítás
    

Fontos, hogy a removeEventListener és a removeListener() esetén ugyanarra a függvényreferenciára van szükség, amit az esemény hozzáadásakor használtál. Az anonim függvény vagy ugyanazt a tartalmat tartalmazó új függvény nem fog működni.