Sobes.tech
Junior

Kaip pašalinti įvykio tvarkyklę?

sobes.tech AI

Atsakymas iš AI

Yra trys pagrindiniai būdai:

  1. Naudoti removeEventListener(): Dažniausias ir rekomenduojamas būdas. Reikalauja perduoti tuos pačius argumentus (įvykio tipą, apdorojimo funkciją ir parinktis), kaip ir pridedant su addEventListener().

    // Pridėjimo pavyzdys
    const element = document.getElementById('myElement');
    const handler = () => {
      console.log('Paspausta');
    };
    element.addEventListener('click', handler);
    
    // Pašalinimo pavyzdys
    element.removeEventListener('click', handler);
    
  2. Priskirti null prie įvykio savybės: Veikia tik inline apdorotojams ir tiems, kurie priskirti per objekto savybes (pvz., onclick).

    // Pridėjimas per savybę
    const element = document.getElementById('myElement');
    element.onclick = () => {
      console.log('Paspausta');
    };
    
    // Pašalinimas
    element.onclick = null;
    
  3. Naudoti removeListener() (Node.js): Taikoma įvykių valdymui Node.js aplinkoje (pvz., EventEmitter pavyzdžiuose).

    // Pavyzdys Node.js
    const { EventEmitter } = require('events');
    const myEmitter = new EventEmitter();
    
    const handler = () => {
      console.log('Įvykis įvyko');
    };
    
    myEmitter.on('myEvent', handler); // Pridėjimas
    myEmitter.removeListener('myEvent', handler); // Pašalinimas
    

Svarbu, kad removeEventListener ir removeListener() perduotų tą pačią nuorodą į apdorojimo funkciją, kuri buvo naudota pridedant. Pateikus anonimę funkciją ar naują funkciją su tuo pačiu turiniu, tai neveiks.