javascript - D3 : looping transition with dynamic name

标签 javascript jquery d3.js

我知道当谈到 D3 时,您不能真正使用 javascript 循环来转换事件。但是,您是否知道为什么不能使用动态名称(例如动态路径名)?出于某种原因,以下内容不起作用(我想做的就是让日本在 map 上持续“发光”......)

请注意:动画的第一部分有效,日本变红了。然后动画停止,即使控制台正确生成“#Japan”并循环到无穷大。

paz = "#Japan";
glowit(paz)

function glowit(paz){
console.log(paz);
d3.select(paz)
  .transition()
  .style("fill", "red")
  .duration(1000)
  .each("end", function(){
     d3.select(paz)
       .transition()
       .style("fill", "white")
       .duration(1000)
       .each("end", glowit("#" + this.id))
  });
}

亲切的问候 - 谢谢你, G.

最佳答案

一个问题可能是您调用 glowit() 而不是将函数作为参数传递给each()。您需要将其包装在一个函数中:

function glowit(paz){
  console.log(paz);
  d3.select(paz)
    .transition()
    .style("fill", "red")
    .duration(1000)
    .each("end", function(){
       d3.select(paz)
         .transition()
         .style("fill", "white")
         .duration(1000)
         .each("end", function () {
            glowit("#" + this.id);
         });
    });
}

关于javascript - D3 : looping transition with dynamic name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37479435/

相关文章:

javascript - javascript中的函数链

jquery - PartialView 和不显眼的客户端验证不起作用

javascript - 如何标记与文本混合的单词

javascript - setTimeout 函数完成后调用 Promise

javascript - 如何在选中时打印复选框的名称?

javascript - d3js 盒须图 : add a single circle to plot given a point in the distribution

javascript - 以相反顺序转换标签 d3 径向图表

javascript - 编辑 D3 Sunburst 可视化的 innerRadius

javascript - JS-如何删除重复的 JSON 节点并为所有合并的节点添加一个链接

jquery - Ajax 错误: Console says - POST is not defined