我在svg上绘制了A rect
和text
。d3如何在文本后面的对象上触发事件
为了显示text
,我先渲染rect
。
我添加mouse click event
到rect
当我点击了文字,似乎矩形是没有选择的,因为矩形的背后是文本,所以文本被选中弗里斯特。
我需要选择在rect
内点击鼠标时触发事件。
我该怎么办?
谢谢!
你可以看到,当你在文本鼠标点击,矩形是不点击。
var data = ["TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE"];
var svg = d3.select("svg");
var bar = svg.selectAll("g")
.data(data)
.enter().append("g")
.attr("transform", function(d, i) { return "translate(100,100)"; });
bar.append("rect")
.attr("width", 200)
.attr("height", 50)
.style("fill", "#f00")
.on("click", function (d) {
alert("text");
});
bar.append("text")
.attr("x", 10)
.attr("y", 25)
.attr("dy", "-.35em")
.text(function(d) { return d; });
你为什么不只是设置文本元素在同一个单击处理? – 2014-11-06 14:18:59
实际上,在我的情况下,文本有数据(真正的问题非常复杂),并且每个矩形都有它自己的数据,所以当你点击函数(d)时,alert(“text”); } d是不同的,谢谢。 – yongnan 2014-11-06 14:21:54