gpt4 book ai didi

javascript - D3js,在 selectAll 中选择 rect 时未捕获引用错误 ('rect' )

转载 作者:行者123 更新时间:2023-11-28 06:07:12 26 4
gpt4 key购买 nike

我正在使用 D3 制作图表。我希望用户能够通过调整单列水平柱形图上堆叠条形的大小来输入他们的选择。

条形堆叠在一起,每个条形都有 .call(drag) 事件监听器。

此拖动事件返回错误。

var drag = d3.behavior.drag()
.on('drag', function() {

var i = state.interactingWith //i represents current element
var rects = d3.select('.svg').selectAll('.bar') //Get all stacked bars
var handles = d3.select('.svg').selectAll('.handle') //Get all event handlers, on the edges of bars
var currentX = d3.select(rects[0][i]).attr('x')

d3.select(rects[0][i])
.attr('width', d3.event.x - currentX)
d3.select(handles[0][i])
.attr('cx', d3.event.x)

if (i < rects[0].length-1){

var j = i+1 //I want to select the next element, but not if this element is the last
var currentNextWidth = d3.select(rects[0][j]).attr('width') //This returns the error
var newNextWidth = currentRightWidth + (+d3.event.x - currentX)

d3.select(rects[0][j])
.attr('x', d3.event.x)
d3.select(rects[0][j])
.attr('width', newRightWidth)
questions[i].displayWidth = newRightWidth

}
})

控制台说:

Uncaught TypeError: Cannot read property 'getAttribute' of null .... d3.min.js:3 

它说有问题的行是 var currentNextWidth ....

如果我将 j 替换为所需的索引,它将按预期工作。有人对这里发生的事情有任何想法吗?

最佳答案

你没有提到变量state和state.interactingWith是如何获得的。尝试在有问题的行上放置一个调试点,并在控制台中记录 j, rect[0][j] 以检查它们在当前范围内是否可用。

关于javascript - D3js,在 selectAll 中选择 rect 时未捕获引用错误 ('rect' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36731915/

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