Ինչպես հեռացնել իրադարձության մշակողը?
sobes.tech AI
Պատասխան AI-ից
Տրո հիմնական երեք մեթոդներ կան.
-
Օգտագործել
removeEventListener(): Ամենատարածված և խորհուրդ տրված մեթոդը։ Պահանջվում է փոխանցել նույն արգումենտները (պատահարի տեսակ, handler ֆունկցիան և ընտրանքները), ինչպեսaddEventListener()-ի ժամանակ։// Օրինակ ավելացման const element = document.getElementById('myElement'); const handler = () => { console.log('Կտտացվեց'); }; element.addEventListener('click', handler); // Օրինակ հեռացման element.removeEventListener('click', handler); -
Տվյալը
null-ով նշանակել պատահարի հատկությանը: Աշխատում է միայն inline handler-ների և այն դեպքերում, երբ դրանք նշանակվել են օբյեկտի հատկությունների միջոցով (օր.,onclick)։// Ավելացում հատկության միջոցով const element = document.getElementById('myElement'); element.onclick = () => { console.log('Կտտացվեց'); }; // Հեռացում element.onclick = null; -
Օգտագործել
removeListener()(Node.js): Կիրառվում է Node.js միջավայրում պատահարի կառավարման համար (օր.,EventEmitter-ի օրինակների համար):// Node.js օրինակ const { EventEmitter } = require('events'); const myEmitter = new EventEmitter(); const handler = () => { console.log('Պատահարը տեղի ունեցավ'); }; myEmitter.on('myEvent', handler); // Ավելացում myEmitter.removeListener('myEvent', handler); // Հեռացում
Կարևոր է, որ removeEventListener և removeListener()-ի համար փոխանցվի նույն հղումը handler ֆունկցիային, որը օգտագործվել է ավելացման ժամանակ։ Անունով ֆունկցիան կամ նոր ֆունկցիա նույն բովանդակությամբ փոխանցելը չի աշխատի։