Javascript 在d3js中设置此元素的动画

Javascript 在d3js中设置此元素的动画,javascript,d3.js,Javascript,D3.js,好的,我有下面的代码示例,其中svg元素中有圆圈。每个圆都有一个单击事件,我正在尝试为被单击的圆设置动画。目前所有的圆都是动画,因为我指的是气泡对象。我想要的是指单击的对象本身,而不是其他对象: var data_items=[100,200,300]; var svg = d3.select("#chart") .append("svg").attr("width", 800).attr("height", 600); var g = svg.selectAll(".

好的,我有下面的代码示例,其中svg元素中有圆圈。每个圆都有一个单击事件,我正在尝试为被单击的圆设置动画。目前所有的圆都是动画,因为我指的是气泡对象。我想要的是指单击的对象本身,而不是其他对象:

 var data_items=[100,200,300];

 var svg = d3.select("#chart")
        .append("svg").attr("width", 800).attr("height", 600);

 var g = svg.selectAll(".bubbleContainer")
      .data(data_items)
      .enter().append("g")
      .attr("class","bubbleContainer");

 var bubble = g.append("circle")
       .attr("class","bubble")
       .attr("cx", function(d) {
              return d;
       })
       .attr("cy", function(d) { 
         return d
        })
       .attr("r", function(d) {
            return d/2
        })
        .on("click",function(d){
        bubble
        .transition()
        .duration(1000)
        .attr("r",1000)
    })
非常感谢您的帮助

谢谢

您可以使用
d3.event.target
访问事件处理程序中正在单击的元素。例如,请参阅。

拉尔斯·科托夫(Lars Kotthoff)所写的将起作用。或者——我不确定哪一个更地道:

在click处理程序中,
this
上下文引用单击的DOM元素

因此,以下几点也可以做到:

.on("click",function(d){
  d3.select(this)
    .transition()
    .duration(1000)
    .attr("r",1000)
});

米塔米特,你就是那个男人!这是你两次在d3问题上帮助我。万分感谢:我的荣幸。事实上,第一次我没有给你一个完整的答案,但不管怎样,我喜欢你的地图项目(看到了你写的关于从自然地球导出geojson数据的博文)。哇!我希望你不要为了这个问题而重复整个例子。顺便说一句,这太棒了,谢谢你。是的,这也很有效