【发布时间】:2012-07-25 08:52:06
【问题描述】:
我创建了一个具有 .on("click") 行为的 SVG 元素,并用 .on("click") 附加了 g 元素,并认为我可以使用 d3.event.stopPropagation() 来防止 SVG 点击事件被 g 点击事件触发。相反,这两个事件继续触发。所以我一定是把stopPropagation 放错了地方。
svg = d3.select("#viz").append("svg:svg")
.attr("width", 800)
.attr("height", 800)
.on("mousedown", mousedown);
sites = svg.selectAll("g.sites")
.data(json.features)
.enter()
.append("svg:g")
.on("click", siteClick)
;
sites.append("svg:circle")
.attr('r', 5)
.attr("class", "sites")
;
function mousedown() {
console.log("mouseDown");
}
function siteClick(d, i) {
d3.event.stopPropagation();
console.log("siteClick");
}
【问题讨论】:
标签: d3.js svg dom-events stoppropagation