Sobes.tech
Junior

Kā noņemt notikumu apstrādātāju?

sobes.tech AI

Atbilde no AI

Ir trīs galvenie veidi:

  1. Izmantot removeEventListener(): Visbiežāk un ieteicamākais veids. Prasa nodot tās pašas argumentus (notikuma tipu, apstrādes funkciju un opcijas), kā arī pievienojot ar addEventListener().

    // Pievienošanas piemērs
    const element = document.getElementById('myElement');
    const handler = () => {
      console.log('Klikšķināts');
    };
    element.addEventListener('click', handler);
    
    // Noņemšanas piemērs
    element.removeEventListener('click', handler);
    
  2. Piešķirt null notikuma īpašībai: Darbojas tikai ar inline apstrādātājiem un tiem, kas piešķirti caur objekta īpašībām (piemēram, onclick).

    // Pievienošanas caur īpašību
    const element = document.getElementById('myElement');
    element.onclick = () => {
      console.log('Klikšķināts');
    };
    
    // Noņemšana
    element.onclick = null;
    
  3. Izmantot removeListener() (Node.js): Piemērots notikumu apstrādei Node.js vidē (piemēram, EventEmitter eksemplāros).

    // Piemērs Node.js
    const { EventEmitter } = require('events');
    const myEmitter = new EventEmitter();
    
    const handler = () => {
      console.log('Notikums noticis');
    };
    
    myEmitter.on('myEvent', handler); // Pievienošana
    myEmitter.removeListener('myEvent', handler); // Noņemšana
    

Svarīgi, ka removeEventListener un removeListener jānodod tā pati funkcijas saite, kas tika izmantota pievienošanai. Anonīmas funkcijas vai jaunas funkcijas ar to pašu saturu nedarbosies.