【问题标题】:tooltip using d3-tip not showing使用 d3-tip 的工具提示未显示
【发布时间】:2019-10-08 09:54:32
【问题描述】:

我正在尝试使用 Angular、d3 v4、d3-tip 在 svg 中实现工具提示。

这是 JS 逻辑

var data = [{
    train: 1
}, {
    train: 2
}, {
    train: 3
}, {
    train: 4
}]
const tip = d3Tip()
let svg =d3.select('svg')
tip
  .offset([-10, 0])
  .html(d => {
    return (
      `<strong>Frequency:</strong> <span style="color:red"> test</span>"` 
    )
  })

svg.call(tip)
let selectedElms = d3.selectAll('circle')
  .data(data, function(d) {
    console.log(this.id)
    return (d && d.train) || this['id'];
  })

selectedElms
  .on('mouseover', tip.show)
  .on('mouseout', tip.hide);

  }

问题是屏幕上没有显示任何内容,但我注意到当我将元素悬停时,tip 函数被触发(chrome 调试器)

return (
      `<strong>Frequency:</strong> <span style="color:red"> test</span>"` 
)

这是一个 demo 代码,但不幸的是我无法重现该错误。

我想提一下,这是我的真实示例,下面的代码位于可观察订阅中

let selectedElms = d3.selectAll('circle')
  .data(data, function(d) {
    console.log(this.id)
    return (d && d.train) || this['id'];
  })

selectedElms
  .on('mouseover', tip.show)
  .on('mouseout', tip.hide);

  }

【问题讨论】:

  • #infodev:工具提示未按动态数据显示,这是您的问题吗?

标签: javascript d3.js svg


【解决方案1】:

如果您的问题是工具提示未按照动态数据显示,请替换以下代码,工具提示将开始显示 -

    tip.offset([-10, 0]).html(d => {
      return (
        "<strong>Frequency:</strong> <span style='color:red'>" +
         d.train + "</span>"
       );
     });

希望对你有帮助:)

【讨论】:

  • 请检查上面的屏幕截图,当将鼠标指针放在圆圈区域上时,频率:1 显示。
  • 是的,正如我所说的示例有效,但不是我的真实示例,我无法重现错误
  • 那你需要分享真实的,我可以为你调试代码:)
  • @Sayan 请您看一下this 的问题好吗?我们已经被困在这几天了......
猜你喜欢
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多