D3.js Olaylar (Events)

Diğer tüm kütüphanelerde olduğu gibi, D3.js’de de elementlerin olaylarını dinleyebilirsiniz. Bir olay dinleyicisini d3.selection.on() yöntemini kullanarak herhangi bir DOM öğesine bağlayabiliriz. on() yöntemi, seçilen tüm DOM öğelerine bir olay dinleyicisi ekler.

İlk parametre “click”, “mouseover” vb. gibi bir string türüdür. İkinci parametre, bir olay meydana geldiğinde yürütülecek bir fonksiyon ve üçüncü isteğe bağlı parametre capture belirtilebilir. W3C useCapture bayrağı. Aşağıdaki tabloda, önemli olay işleme yöntemi ve nesneleri listelenmektedir.

d3.selection.on(type[, listener[, capture]]);
Metod Açıklama
selection.on() click, mouseover, mouseout vb. gibi olayları yakalamak için etkinlik dinleyicileri ekleyin veya kaldırın.
d3.event Zaman damgası gibi standart olay alanlarına erişmek için olay nesnesi veya prevDefault gibi yöntemler
d3.mouse(container) Belirtilen DOM öğesinde geçerli fare konumunun x ve y koordinatlarını alır.
d3.touch() Dokunma koordinatlarını alır

Örnek:

See the Pen d3.js events by oguzhan (@oguzhaninan) on CodePen.

Özel Olaylar

Standart olaylar dışında istersek kendi olaylarımızı ekleyebiliyoruz. Özel bir olay eklemek için diğerleri gibi bir isim verip .on() fonksiyonuna parametre olarak veriyoruz. Bu olayları tetiklemek için dispatch fonksiyonunu kullanıyoruz. İlk parametre olay ismi ve ikinci opsiyonel parametre olarak veri gönderebiliriz. Gönderilen veriyi olay dinleyici fonksiyon içinde kullanmak için d3.event.detail kullanılır.

d3.selection.dispatch(type[, data]);

Örnek:

See the Pen custom event by oguzhan (@oguzhaninan) on CodePen.