2016-09-22 4 views
0

Ich benutze d3 v4 und versuche, einen Stil auf ein Element auf mouseover anwenden. Ich frage mich, ob es eine API-Änderung mit V4 ist, aber ich kann nicht an dem KnotenÄndern der Klasse D3 auf mouseover

ich scheinen, haben Code:

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

aber das gibt einen Fehler

Cannot read property 'getAttribute' of null 

So scheint die d3.select() nicht zu funktionieren ... Der mouseover feuert jedoch.

kann ich

.on('mouseover', (elem) => { 
    console.log('elem', elem); 

benutzen, die mir irgendeine Art von D3 Objekt geben wird, aber nicht ein DOM-Knoten. Ich kann keine D3 Methoden auf diesem Objekt

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

Keine dieser Methoden gibt es verwenden, um auf ein d3 Objekt zurückgegeben.

Also wie mache ich diese super grundlegende Operation in d3?

im Zusammenhang mit Change class of one element when hover over another element d3

+0

Wenn das Typoskript, könnten Sie bitte geben Sie JavaScript-Code, der es erzeugt (oder vielleicht eine Geige)? d3.select sollte funktionieren: https://jsfiddle.net/hjt5rxbx/ – Nixie

+0

Kannst du eine Geige dafür machen? –

+0

Es gibt keine Notwendigkeit für eine Geige, das ist nur die Bedeutung von "this" in einer fetten Pfeilfunktion. –

Antwort

-1

Sie können Pfeil-Funktionen verwenden (wenn dies ein Pfeil-Funktion), wenn Sie den Zugriff müssen nicht this des aktuellen Elements. In diesem Fall brauchen Sie, weil D3 Ereignishandler aufruft, die this auf das Element setzen, das dieses Ereignis auslöst.

See: Using arrow functions with d3

Verwandte Themen