gpt4 book ai didi

jquery - d3 圆 onclick 事件未触发

转载 作者:行者123 更新时间:2023-12-03 22:46:00 24 4
gpt4 key购买 nike

我从 svg 开始,并创建了以下标记。

<svg width="500" height="600" class="graph-container">
<g>
<rect x="150" y="190" height="50" width="200" rx="30" ry="30" nodeId="1" children="3" style="fill: none; stroke: rgb(68, 68, 68);"></rect>
<text x="250" y="220" text-anchor="middle" fill="#444" style="font-size: 24px;">root</text>

</g>

</svg>

我通过 d3js 在较大的矩形中添加了一个小圆圈。

$( document ).ready(function() {

var node = d3.select('g');
var addchild = node.append("circle")
.attr("cx",320)
.attr("cy",210)
.attr("r",10)
.attr("class","addchild")
.style("fill","none")
.style("stroke","#444");

addchild.on("click", function() {
alert("on click");
});;

});

但是点击事件没有触发。

这是jsfiddle相同的。

最佳答案

默认情况下,您只能单击实际绘制的形状部分。由于填充在您的形状中是“无”的,因此它不会响应点击。笔划确实如此,但非常细且难以点击。

如果您希望未绘制圆圈的内部响应点击,您可以更改 pointer-events属性表示可见,然后圆圈的内部将响应点击。

$( document ).ready(function() {

var node = d3.select('g');
var addchild = node.append("circle")
.attr("cx",320)
.attr("cy",210)
.attr("r",10)
.attr("class","addchild")
.style("fill","none")
.style("pointer-events","visible")
.style("stroke","#444");

addchild.on("click", function() {
alert("on click");
});;

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<svg width="500" height="600" class="graph-container">
<g>
<rect x="150" y="190" height="50" width="200" rx="30" ry="30" nodeId="1" children="3" style="fill: none; stroke: rgb(68, 68, 68);"></rect>
<text x="250" y="220" text-anchor="middle" fill="#444" style="font-size: 24px;">root</text>

</g>

</svg>

关于jquery - d3 圆 onclick 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34605916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com