Bir öğeye olay işleyicisi ayarlamanın en esnek yolu, yöntemini kullanmaktır EventTarget.addEventListener
. Bu yaklaşım, bir öğeye birden fazla dinleyicinin atanmasına ve gerektiğinde dinleyicilerin kaldırılmasınaEventTarget.removeEventListener
(kullanılarak ) olanak tanır.
const btn = document.querySelector("button");
function greet(event) {
console.log("greet:", event);
}
btn.addEventListener("click", greet);
Yöntem ayrıca olayların nasıl yakalanıp kaldırılacağına ilişkin yönleri kontrol etmek için ek argümanlar/seçenekler de alabilir. Daha fazla bilgi referans sayfasında bulunabilir EventTarget.addEventListener
.
Bir İptal Sinyali Kullanma
Dikkat çekici bir olay dinleyicisi özelliği, aynı anda birden fazla olay işleyicisini temizlemek için bir iptal sinyali kullanma yeteneğidir.
Bu , birlikte kaldırmak istediğiniz tüm olay işleyicileri için çağrıya aynı şeyi geçirerek yapılır. Daha sonra 'a sahip olan denetleyiciyi çağırabilirsiniz AbortSignal
ve bu , o sinyalle eklenen tüm olay işleyicilerini kaldıracaktır. Örneğin, şunu kullanarak kaldırabileceğimiz bir olay işleyicisi eklemek için :addEventListener()
abort()
AbortSignal
AbortSignal
const controller = new AbortController();
btn.addEventListener(
"click",
(event) => {
console.log("greet:", event);
},
{ signal: controller.signal },
); // pass an AbortSignal to this handler
Daha sonra yukarıdaki kodla oluşturulan olay işleyicisi şu şekilde kaldırılabilir:
controller.abort(); // removes any/all event handlers associated with this controller