首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在drag.start和drag.end之间传递d3值

如何在drag.start和drag.end之间传递d3值
EN

Stack Overflow用户
提问于 2020-10-18 09:25:06
回答 1查看 119关注 0票数 1

我无法让d.startX和d.startY在.end()块中显示值(它们是未定义的)。有什么好主意吗?

代码语言:javascript
复制
    .call(d3.drag().on("start", function(d) {
        let coords = d3.pointer(event);
        let xPos = coords[0]
        let yPos = coords[1]
        d.startX = xPos
        d.startY = yPos
    }).on("end", function(d) {
        let coords2 = d3.pointer(event);
        let xPos2 = coords2[0]
        let yPos2 = coords2[1]
        console.log(d.startX) //shows up as undefined
        console.log(xPos2)
        console.log(yPos2)
EN

回答 1

Stack Overflow用户

发布于 2022-05-22 16:53:40

您可以在"this“引用中为当前事件设置任何值(例如,'start‘事件)。在相应的"end“函数中,您可以获取您的值。

代码语言:javascript
复制
.call(d3.drag().on("start", function(d) {
  let coords = d3.pointer(event);
  let xPos = coords[0]
  let yPos = coords[1]
  d.startX = xPos
  d.startY = yPos
  this._current = d;
}).on("end", function(d) {
  let coords2 = d3.pointer(event);
  let xPos2 = coords2[0]
  let yPos2 = coords2[1]
  console.log(this._current.startX) //Must show the value
  console.log(xPos2)
  console.log(yPos2)`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64411666

复制
相关文章

相似问题

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