2017-09-19 5 views
1

JS und Zeichenkreise, ich ziehe es auf bestimmte Koordinaten, jetzt muss ich X-Kordinate, Y-Koordinate und Farbe (die ich zufällig zuweisen) des ausgewählten Elements abrufen , Ich bin in der Lage, X-Kabel, Y-Kabel, Radius zu bekommen, aber die Farbe zeigt Null. Hier bin ich Zuordnung Farbe und koordinieren:Wie bekomme ich die Farbe des aktuell ausgewählten Objekts mit d3

svg.selectAll("circle") 
    .data(circles) 
    .enter().append("circle") 
    .attr("cx", function (d) { 
     return d.x; 
    }) 
    .attr("cy", function (d) { 
     return d.y; 
    }) 
    .attr("r", radius) 
    .style("fill", function (d, i) { 
     return color(i); 
    }) 
    .call(d3.drag() 
    .on("start", dragstarted) 
    .on("drag", dragged) 
    .on("end", dragended)); 

ich hier abrufen bin versucht zu koordinieren und die Farbe des ausgewählten Elements

function dragended(d) { 
     d3.select(this).classed("active", false); 

     console.log('dragged ' + flagForCircle + ' xCord ' + d3.select(this).attr('cx')+' ycord ' + d3.select(this).attr('cy') +' color ' + d3.select(this).attr('fill')); 

     d3.select(this).on('mousedown.drag', null); 


     } 


    } 
+0

Können Sie zeigen, dass die Svg, oder ein Teil davon, gezogen wird, vor und nach dem Ziehen –

+0

hey Darren Danke für die Antwort, wollen Sie Code oder Ausgabe Screenshot sehen ?? –

+0

Hier versuche ich einen der Kreise aus dem Haufen zu ziehen, und ich brauche alle Informationen dazu –

Antwort

2

Sie die Einstellung der Füllung mit style:

.style("fill", function (d, i) { 
    return color(i); 
}) 

Daher müssen Sie style im Getter verwenden:

d3.select(this).style('fill') 
+0

Es ist jedoch zu beachten, dass dies nicht unbedingt wahr ist andersherum: https://stackoverflow.com/a/45033107/4235784 - https://jsfiddle.net/nvs2u1Lj/ – altocumulus

+0

Danke Gerardo :) es funktioniert –

Verwandte Themen