2017-09-19 72 views
1

JS和繪圖圓圈,我將它拖動到某個座標,現在我需要檢索所選項目的x座標,y座標和顏色(我將隨機分配) ,我可以得到x線,y線,半徑,但顏色顯示爲空。在這裏,我指定顏色和協調:如何使用d3獲取當前選中對象的顏色使用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)); 

這裏我試圖找回協調和選擇的項目

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

可以顯示svg或其拖動前後拖動的部分, –

+0

hey Darren感謝您的回覆,您想查看代碼或輸出截圖? –

+0

這裏我試圖從一堆中拖出一個圓圈,並且我需要所有關於該信息的信息 –

回答

2

你設置填充用style的顏色:

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

因此,您必須在吸氣劑中使用style

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

但值得記住的是,這不一定是真的其他方式:https://stackoverflow.com/a/45033107/4235784 - https://jsfiddle.net/nvs2u1Lj/ – altocumulus

+0

謝謝赫拉爾多:)它的工作原理 –