Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单击beahviour时,给所有圆元素赋值_Javascript_Jquery_Svg_D3.js_Onclick - Fatal编程技术网

Javascript 在单击beahviour时,给所有圆元素赋值

Javascript 在单击beahviour时,给所有圆元素赋值,javascript,jquery,svg,d3.js,onclick,Javascript,Jquery,Svg,D3.js,Onclick,我必须做一个函数,获取所有的圆元素,并使它们可以点击。使用我的代码,我只能单击最后创建的节点,我不明白为什么。你能帮我吗?我使用d3库,这是我的代码: var allCircles = vis.selectAll('circle'); allCircles.on('click', function(){ /* make the same stuff depending from the circle clicked */ }); 如果你需要更多的解释,问我 非常感谢你帮助我` 我不使

我必须做一个函数,获取所有的圆元素,并使它们可以点击。使用我的代码,我只能单击最后创建的节点,我不明白为什么。你能帮我吗?我使用d3库,这是我的代码:

var allCircles = vis.selectAll('circle');

allCircles.on('click', function(){
    /* make the same stuff depending from the circle clicked */
});
如果你需要更多的解释,问我


非常感谢你帮助我`

我不使用d3库,也从未听说过它,但我可以不用它

var circles=document.getElementsByTagName('circle');
function onclik() {
  //do stuff
}
for(var i=0;i<circles.length;i++){
  circles[i].setAttribute("onclick","onclik()")
}
var circles=document.getElementsByTagName('circle');
函数onclik(){
//做事
}

对于(var i=0;i而言,最好在圆的(父)容器元素上添加事件侦听器。这意味着您有这样一个元素,例如可以在其中添加侦听器的

var circleContainer = /* find your g element that contains the circles here */;

circleContainer.on('click', function(){
    // d3.event.target is the clicked circle
    d3.select(d3.event.target).attr("fill", "blue");
});

如果您更熟悉jQuery,那么这个概念就在这里被调用。

只是为了确保,您是否检查了什么
allCircles
实际引用了多个元素?allCircles是一个包含一个元素的对象,即创建的所有圆的数组。此代码要放在SVG文件中。如果您希望它位于HTML文件中,请重播ce“document”值保存SVGDocument对象的变量名