Sobes.tech
Junior

Kako ukloniti handler događaja?

sobes.tech АИ

Одговор од АИ

Postoje tri glavna načina:

  1. Korišćenje removeEventListener(): Najčešći i preporučeni način. Potrebno je proslediti iste argumente (tip događaja, funkciju rukovaoca i opcije) kao i prilikom dodavanja pomoću addEventListener().

    // Primer dodavanja
    const element = document.getElementById('myElement');
    const handler = () => {
      console.log('Kliknuto');
    };
    element.addEventListener('click', handler);
    
    // Primer uklanjanja
    element.removeEventListener('click', handler);
    
  2. Dodeljivanje null svojstvu događaja: Radi samo za inline rukovaoce i one koji su dodeljeni putem svojstava objekta (npr. onclick).

    // Dodavanje putem svojstva
    const element = document.getElementById('myElement');
    element.onclick = () => {
      console.log('Kliknuto');
    };
    
    // Uklanjanje
    element.onclick = null;
    
  3. Korišćenje removeListener() (Node.js): Koristi se za rukovanje događajima u Node.js okruženju (npr. za instance EventEmitter).

    // Primer u Node.js
    const { EventEmitter } = require('events');
    const myEmitter = new EventEmitter();
    
    const handler = () => {
      console.log('Događaj se desio');
    };
    
    myEmitter.on('myEvent', handler); // Dodavanje
    myEmitter.removeListener('myEvent', handler); // Uklanjanje
    

Važno je da se za removeEventListener i removeListener prosleđuje ista referenca na funkciju rukovaoca koja je korišćena prilikom dodavanja. Prosleđivanje anonimne funkcije ili nove funkcije sa istim sadržajem neće raditi.