Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在D3中刷子图报告错误值_Javascript_D3.js_Svg - Fatal编程技术网

Javascript 在D3中刷子图报告错误值

Javascript 在D3中刷子图报告错误值,javascript,d3.js,svg,Javascript,D3.js,Svg,任务描述 在d3中报告笔刷事件的笔刷范围。用作参考的任务 预期行为 当我在X轴或Y轴上单击或画笔时,应报告正确的值,即如果我在数字“0.3”上单击,d3.brush.extent()应返回[0.3,0.3];如果我刷过-0.2和0.4,d3.brush.extent()应该返回[-0.2,0.4] 观察到的行为 当我在X轴或Y轴上单击时,在控制台中观察到d3.brush.extent()的正确值,即,如果我单击数字“0.3”,d3.brush.extent()将返回[0.3,0.3]。但是,当我

任务描述

在d3中报告笔刷事件的笔刷范围。用作参考的任务

预期行为

当我在X轴或Y轴上单击或画笔时,应报告正确的值,即如果我在数字“0.3”上单击,d3.brush.extent()应返回[0.3,0.3];如果我刷过-0.2和0.4,d3.brush.extent()应该返回[-0.2,0.4]

观察到的行为

当我在X轴或Y轴上单击时,在控制台中观察到d3.brush.extent()的正确值,即,如果我单击数字“0.3”,d3.brush.extent()将返回[0.3,0.3]。但是,当我刷一个范围时,d3.brush.extent()无法报告正确的值。恢复画笔的唯一方法是重新加载页面。未观察到任何错误

我的尝试

我尝试用d3.brush.clear()清除笔刷,但似乎没有效果。如果我刷一个区域,单击之前观察到工作的区域不会恢复笔刷。从上面的参考资料来看,我认为是罪魁祸首的功能是

function brushed() {
  x.domain(brush.empty() ? x2.domain() : brush.extent());
}
但我不知道为什么它在我的应用程序中表现得不如预期

这是我到目前为止所拥有的东西。请注意,d3.brush.extent()值记录在控制台上

问题


为什么笔刷事件没有返回正确的范围?为什么刷牙的时候会卡住?关于什么可能会被拒绝,你有什么想法吗?

不完全确定发生了什么,但是你的
图形
变量似乎在不同的上下文中引用了不同的东西。如果您将在
d3_data
中定义的代码移动到
plot
函数中,它就会起作用:嗯。我将不得不仔细思考它为什么会这样工作。同时,谢谢你,拉尔斯!