关于d3中call & on参数之间的区别,我有一个问题。
据我所知,
1) on 'on‘论据
“选择”+“on”是聚焦事件或动作。,例如,
D3.select().on(“单击”,函数)
或
转换().on(‘end’,函数)
上述参数被解释为
当on()中发生某些事情时,在事件发生后执行函数。
2)“调用”参数
“svg”+“call”参数是使用调用参数中指定的信息在svg上绘制东西。
例如,,
d3.select().call(d3.axisBottom(x))选择的->绘制轴
或d3. selection ().call(画笔) ->绘图刷在所选内容上
然而,!,我不能从我的理解来解释这个论点。
scatter.select(".brush").call(brush.move, null)这是为了消除刷子一旦它被移动。应该有点像
select().on(brush.move, function(){eliminating or hide brush})上面的代码是我的伪代码。
如果我错误地理解了呼叫和功能,有人能纠正我吗?为什么我必须调用(brush.move,null)来消除刷子?
我遇到这个问题的完整代码在下面的链接中。https://jsfiddle.net/soonk/4u6zL0dn/
发布于 2020-04-10 08:54:37
如果您查看selection.call()的API文档,您会注意到
scatter.select(".brush").call(brush.move, null)基本上相当于
brush.move(scatter.select(".brush"), null)使用.call(brush.move, null)时,实际选择的scatter.select(".brush")作为第一个参数传递给brush.move()。前一个调用的第二个参数null作为第二个参数传递给brush.move()。
看看brush.move()的规范,您会发现(强调我的):
# brush.move(组,选择) …必须将选择定义为数字数组,或null,以清除刷选择。
将这两位放在一起,很容易理解为什么第一条语句用于清除刷选择。
https://stackoverflow.com/questions/61134553
复制相似问题