首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >d3中“on”和“call”的区别

d3中“on”和“call”的区别
EN

Stack Overflow用户
提问于 2020-04-10 05:32:57
回答 1查看 75关注 0票数 1

关于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(画笔) ->绘图刷在所选内容上

然而,,我不能从我的理解来解释这个论点。

代码语言:javascript
复制
scatter.select(".brush").call(brush.move, null)

这是为了消除刷子一旦它被移动。应该有点像

代码语言:javascript
复制
select().on(brush.move, function(){eliminating or hide brush})

上面的代码是我的伪代码。

如果我错误地理解了呼叫和功能,有人能纠正我吗?为什么我必须调用(brush.move,null)来消除刷子?

我遇到这个问题的完整代码在下面的链接中。https://jsfiddle.net/soonk/4u6zL0dn/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-10 08:54:37

如果您查看selection.call()的API文档,您会注意到

代码语言:javascript
复制
scatter.select(".brush").call(brush.move, null)

基本上相当于

代码语言:javascript
复制
brush.move(scatter.select(".brush"), null)

使用.call(brush.move, null)时,实际选择的scatter.select(".brush")作为第一个参数传递给brush.move()。前一个调用的第二个参数null作为第二个参数传递给brush.move()

看看brush.move()的规范,您会发现(强调我的):

# brush.move(组,选择) …必须将选择定义为数字数组,或null,以清除刷选择

将这两位放在一起,很容易理解为什么第一条语句用于清除刷选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61134553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档