2016-09-22 4 views
0

私はd3 v4を使用しており、マウスオーバー時に要素にスタイルを適用しようとしています。それはV4とAPIの変更だが、私はノードで取得するように見えることができない場合 私は思ったんだけどマウスオーバーでd3クラスを変更する

私が持っているコード:

.on('mouseover',() => { 
    let self = d3.select(this); 
    let c = self.attr('class'); 

が、これはエラーになります

Cannot read property 'getAttribute' of null 

だからd3.select()は動作していないようです... マウスオーバーが発砲しています。

私は

.on('mouseover', (elem) => { 
    console.log('elem', elem); 
くれD3オブジェクトのいくつかの種類を与える

ではなく、DOMノードを使用することができます。私はこのオブジェクトのいずれもこれらの方法の

elem.classed("hilite", true); 
    elem.attr("class", "hilite"); 

を任意D3の方法を使用することができない はD3返されるオブジェクト上に存在します。

d3でこのスーパー基本操作を行うにはどうすればよいですか? Change class of one element when hover over another element d3

+0

これは活字体である場合は、JavaScriptのそれは、生成されたコード(またはおそらくフィドル)を提供してくださいだろうか? d3.selectは正常に動作しているはずです:https://jsfiddle.net/hjt5rxbx/ – Nixie

+0

これを行うにはどうすればいいですか? –

+0

フィドルの必要はありません。これは太い矢印の機能では「this」の意味です。 –

答えて

-1

に関連

あなたが現在の要素のthisにアクセスする必要がない場合は、矢印機能(この矢印機能する場合)を使用することができます。この場合、D3はこのイベントをトリガーする要素にthisを設定するイベントハンドラを呼び出すため、必要となります。

参照:Using arrow functions with d3

関連する問題