为什么D3中的工具提示和画笔需要使用自定义事件?

问题描述 投票:1回答:1

我曾试图分解D3中应用于刷子上的tooltip的代码,而我正在研究的代码似乎是使用自定义事件。

而我正在研究的代码似乎是使用自定义事件,但是,我不认为自定义事件是必要的。为了检查这一点,我注释了整个自定义事件部分,它工作得非常好。

我注释掉的部分在下面。

function brushend() {
    //딱히 필요한거같지는 않은 기능.
  get_button = d3.select(".clear-button");
  if(get_button.empty() === true) {
    clear_button = svg.append('text')
      .attr("y", 460)
      .attr("x", 825)
      .attr("class", "clear-button")
      .text("Clear Brush");
  }

整个代码附在下面。

https:/codepen.iojotnajoapenNWGXoQo

我认为这只是一个额外的部分,对可视化没有任何作用。

我坚信,在刷子功能之上实现工具提示的不同之处就发生在这里。

它以'call'的方式添加了辅助函数,而不是仅仅添加'.on('click', function() )'。

points = svg.selectAll(".point")
    .data(data)
  .enter().append("circle")
    .attr("class", "point")
    .attr("clip-path", "url(#clip)")
    .attr("r", function(d){return Math.floor(Math.random() * (20 - 5 + 1) + 5);})
    .attr("cx", function(d) { return x(d.index); })
    .attr("cy", function(d) { return y(d.value); })
    .call(d3.helping.tooltip());

先谢谢你。

P.S 另外,据我所知,自定义事件在任何情况下都不是真正必要的,因为它所做的只是和普通函数一样,自定义事件并不能真正做什么特别的事情。为了执行它的功能,我需要调度它,这使得代码变得冗长,仅此而已。

这只是我的想法,我愿意听取任何对我的想法的批评意见(这不是我的主要问题)。

对于来自Stackoverflow的建设性意见,总是感到很感激。

javascript d3.js data-visualization
1个回答
0
投票

我想明白了.这不是一个自定义事件的问题.而是代码和调用函数的问题.只是代码和调用函数的问题.

© www.soinside.com 2019 - 2024. All rights reserved.