gpt4 book ai didi

javascript - SVG 矩形单击事件监听器

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

我已按以下方式绘制了 svg 矩形,并尝试按以下方式向其添加单击事件。但是,代码无法正常工作。我哪里出错了?

var enterElements = svgContainer.selectAll("rect") 
.data(series).enter().append("rect")
.attr("x", function(d, i){
return xPosLoop[i];
})
.attr("height", function(d,i){
return elementHeight[i];
})
.attr("y", function(d, i){
return yPosLoop[i];
})
.attr("width", function(d,i){
return elementWidth[i];
})
.attr("rx", 7)
.attr("fill", function(d, i){
return color[i];
})
.addEventListener('click', rect_click)
.attr("stroke", "#006ec5")
.attr("stroke-width", 1);
function rect_click(event)
{
console.log('I was clicked');
}

最佳答案

您正在使用 d3 选择,而不是 DOM 元素本身。要将事件监听器分配给选择的元素,您可以执行以下操作:

.on('click', clickHandler)

clickHandler 传递当前数据和元素索引。要访问该事件,请使用d3.event:

function clickHandler(d, i) {
// d is the datum
// i is the index
// this is the reference to the current element
// d3.event is the reference to the current event
}

参见selection.on(type[, listener[, capture]]) documentation .

关于javascript - SVG 矩形单击事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25377611/

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