Sobes.tech
Junior

Чӣ гуна ҳазм кардани гӯшкунакҳои ҳодиса?

sobes.tech AI

Ҷавоб аз AI

Барои хориҷ кардани ҳодисаҳои рӯйдод, усули removeEventListener() истифода мешавад. Ин усул се аргументи ҳамонҳоро қабул мекунад, ки addEventListener():

  1. Навъи рӯйдод (хати, масалан 'click', 'mouseover').
  2. Ҳавола ба функсияи коркардкунанда, ки таъин шудааст.
  3. Объекти интихобӣ ё арзиши булӣ, ки марҳиларо нишон медиҳад (гардон ё бублӣ). М бояд бо он, ки ҳангоми илова кардан истифода шудааст, мувофиқат кунад.

Мухим: барои хориҷ кардани муваффақ, бояд ҳамин ҳавола ба функсия-ро гузаронед, ки ҳангоми илова кардан истифода шудааст. Функсияҳои анонимӣ, ки "дар фуруд" сохта шудаанд, бо ин роҳ хориҷ карда намешаванд.

Масалан:

// Элементро гирифтан
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); // баробар