[英]SVG tag mousedown event with D3
我有一个<svg></svg>
节点,我尝试添加mousedown
事件,由于某种原因根本不会触发,而click
工作正常,这是有意的行为吗? svg 标签不能附加mousedown
事件还是我做错了什么?
我正在使用 d3.js 库附加事件:
d3.select(svg)
.on("mousedown", (event) => setRectPoint(event, gContainer))
.on("mousemove", (event) => drawRectOutline(event, gContainer));
如果svg
已经是一个选择,则不需要再次执行d3.select
。
下面你可以看到当鼠标按钮被按下时mousedown
被触发,而当按钮被释放时click
被触发。
const svg = d3.select("#viz").append("svg").attr("width", 240).attr("height", 180); const drawRect = (e) => { d3.select(e.target).append("rect").attr("x", ex).attr("y", ey).attr("width", 40).attr("height", 20); } const drawCircle = (e) => { d3.select(e.target).append("circle").attr("cx", ex).attr("cy", ey).attr("r", 20); } svg.on("mousedown", e => drawRect(e)).on("click", e => drawCircle(e));
svg { border: 1px solid black; } rect { fill: #f00; } circle { fill: #0f0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/6.7.0/d3.min.js"></script> <div id="viz"></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.