Sobes.tech
Junior

Kuidas eemaldada sündmuse töötleja?

sobes.tech AI

Vastus AI-lt

On kolm peamist viisi:

  1. Kasutada removeEventListener(): Kõige levinum ja soovitatav viis. Nõuab sama argumentide (sündmuse tüüp, töötleja ja valikud) edastamist, mis lisamisel addEventListener() abil.

    // Lisamise näide
    const element = document.getElementById('myElement');
    const handler = () => {
      console.log('Klõpsatud');
    };
    element.addEventListener('click', handler);
    
    // Eemaldamise näide
    element.removeEventListener('click', handler);
    
  2. ** määrata null sündmuse omadusele:** Toimib ainult inline-töötlejate ja nende puhul, mis määratakse objekti omaduste kaudu (näiteks onclick).

    // Lisamine omaduse kaudu
    const element = document.getElementById('myElement');
    element.onclick = () => {
      console.log('Klõpsatud');
    };
    
    // Eemaldamine
    element.onclick = null;
    
  3. Kasutada removeListener() (Node.js): Kasutatakse sündmuste töötlemiseks Node.js keskkonnas (näiteks EventEmitter eksemplaridel).

    // Näide Node.js
    const { EventEmitter } = require('events');
    const myEmitter = new EventEmitter();
    
    const handler = () => {
      console.log('Sündmus toimus');
    };
    
    myEmitter.on('myEvent', handler); // Lisamine
    myEmitter.removeListener('myEvent', handler); // Eemaldamine
    

Oluline on, et removeEventListener ja removeListener nõuavad sama funktsiooni viidet, mis lisamisel kasutati. Anonüümsete või uute funktsioonide kasutamine sama sisuga ei tööta.