Sobes.tech
Junior

Πώς διαγράφεται ένας ακροατής συμβάντων;

sobes.tech AI

Απάντηση από AI

Για να αφαιρέσετε έναν διαχειριστή συμβάντων, χρησιμοποιήστε τη μέθοδο removeEventListener(). Αυτή η μέθοδος δέχεται τα ίδια τρία επιχειρήματα με το addEventListener():

  1. Τύπος συμβάντος (string, π.χ. 'click', 'mouseover').
  2. Αναφορά στη συνάρτηση διαχειριστή που έχει ανατεθεί.
  3. Προαιρετικό αντικείμενο ή boolean τιμή που δείχνει τη φάση (capture ή bubbling). Πρέπει να ταιριάζει με αυτό που χρησιμοποιήθηκε κατά την προσθήκη.

Σημαντικό: για επιτυχή διαγραφή, πρέπει να περάσετε ακριβώς την ίδια αναφορά στη συνάρτηση που χρησιμοποιήθηκε κατά την προσθήκη. Οι ανώνυμες συναρτήσεις που δημιουργούνται "στην fly" δεν μπορούν να διαγραφούν με αυτόν τον τρόπο.

Παράδειγμα:

// Λήψη στοιχείου
const element = document.getElementById('myButton');

// Ορισμός διαχειριστικής συνάρτησης
function handleClick() {
  console.log('Το κουμπί πατήθηκε!');
}

// Προσθήκη διαχειριστή
element.addEventListener('click', handleClick);

// ...κώδικας...

// Αφαίρεση διαχειριστή
element.removeEventListener('click', handleClick);

Εάν ο διαχειριστής προστέθηκε με επιλογές, π.χ. useCapture: true, πρέπει επίσης να τις δηλώσετε κατά την αφαίρεση:

element.addEventListener('click', handleClick, { capture: true });

// ...

element.removeEventListener('click', handleClick, { capture: true });

Εάν κατά την προσθήκη ο τρίτος παράμετρος παραλείφθηκε (προεπιλεγμένη τιμή false), μπορεί επίσης να παραλειφθεί κατά την αφαίρεση ή να οριστεί ως false:

element.addEventListener('click', handleClick); // useCapture: false προεπιλογή

// ...

element.removeEventListener('click', handleClick);
element.removeEventListener('click', handleClick, false); // ισοδύναμο