d 3イベント(二):イベントのトリガとカスタムイベント
2859 ワード
第4版では、d 3にjqueryのtrigger関数と同様にdom要素のイベント処理関数をトリガするイベントのトリガ関数dispatchが追加された.また、d 3の選択セットは、任意の名前のイベントと関連するイベント処理関数、すなわちカスタムイベントを登録することもできる.
ページに「d 3イベント(一):イベントの登録とネーミングスペース」に関する要素がまだ存在すると仮定し、これに基づいて以下の操作を行う.
helloはhtml標準のイベントタイプではないので、バインドされたイベント関数をトリガーできない場合はdispatchを使用してトリガーする必要があります.
dispatchは関数を非常に迅速に励起し、現在の要素のコンテキストを保持することができ、より個性的で強力なトリガ関数が必要な場合はcustomEventを使用する必要があります.customEventという名前を見ると、パーソナライズされたイベントを定義しているような気がしますが、イベントのトリガとして使用され、コンテキスト、転送されたデータ、d 3イベントのパッケージを制御することができます.
ページに「d 3イベント(一):イベントの登録とネーミングスペース」に関する要素がまだ存在すると仮定し、これに基づいて以下の操作を行う.
d3.selectAll('button')
// d ,i ,group
.on('hello', function(d, i, group) {
//
var event = d3.event,
output = 'Hello,' + d.username;
// event
if(event.detail && event.detail.suffix) {
output += event.detail.suffix
}
//
alert(output);
})
helloはhtml標準のイベントタイプではないので、バインドされたイベント関数をトリガーできない場合はdispatchを使用してトリガーする必要があります.
// hello
d3.selectAll('button').dispatch('hello', {
// d3.event
detail : {
suffix : '!'
}
});
// "Hello,yiifaa!"
dispatchは関数を非常に迅速に励起し、現在の要素のコンテキストを保持することができ、より個性的で強力なトリガ関数が必要な場合はcustomEventを使用する必要があります.customEventという名前を見ると、パーソナライズされたイベントを定義しているような気がしますが、イベントのトリガとして使用され、コンテキスト、転送されたデータ、d 3イベントのパッケージを制御することができます.
d3.customEvent(
// d3.event, html , , d3.event sourceEvent
{
detail : {
prefix : ' ,'
}
},
//
function(params) {
var ev = d3.event;
// ev.sourceEvent, UI
alert(ev.detail.prefix + this.datum().username +params.suffix);
},
// , this
d3.selectAll('button'),
//
[{
suffix : '!'
}]
);
// " ,yiifaa!"