.remove() 之后的 d3 回调函数

2024-02-22

我想知道我的所有行何时被删除,以便我可以调用另一个函数。

svg.selectAll('line').transition().duration(2500)
    .style("stroke-opacity",0).remove();

我知道我可以使用 .each("end",mycallback) 在每次转换后运行回调,但我只想在所有转换完成后运行一次。

如果我尝试这个

svg.selectAll('line').transition().duration(2500)
   .style("stroke-opacity",0).remove().call(function(){console.log("yes");});

那么 .call() 在转换完成之前发生。

我可以添加 window.setTimeout(),但是有正确的方法吗?


正确的方法是使用.each("end", callback)。正如您所指出的,对于过渡中的每个元素都会调用一次。您无法更改此设置,但可以添加一个计数器来跟踪已删除的元素数量:

d3.selectAll("div")
  .call(setupRemove)
  .transition().duration(500)
  .each("end", onRemove)
  .remove();

function setupRemove(sel) {
  counter = sel.size();
}
function onRemove() {
  counter--;
  if(counter == 0) {
    console.log("all done");
  }
}

完整演示here http://jsfiddle.net/N8Fd8/。请注意,在特殊情况下,当您想要在第一组完成后运行另一个转换时,您可以仅使用.transition() again.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.remove() 之后的 d3 回调函数 的相关文章

随机推荐

  • Excel 删除 Python 插入的有效公式

    我正在尝试使用 Python 生成 Excel xlsx 报告openpyxl 但有一个问题 Excel 不断从我的工作表中删除公式在一些特定的细胞中 我打印了正在插入的内容 它似乎绝对有效 如果我将其从控制台粘贴到单元格 它会显示确切的结
  • 我该如何:Git 单向推送/不可编辑的工作目录?

    有没有办法拥有两台机器 假设A和B A 是我的本地计算机 我在其中开发代码并推送它 B 是一个服务器 永远不需要编辑代码 但需要一个工作目录 是否有可能做到这一点without做任何事git pull是来自 B 的什么吗 基本上 我只想以一
  • 为什么 tokio::spawn 即使使用 .clone() 也会抱怨生命周期?

    我试图编译以下看似简单的代码 但出现错误 use std io Error derive Debug struct NetworkConfig bind String node key file String async fn networ
  • 检测视图控制器何时进入后台并恢复

    我正在实现一个具有以下要求的 ViewController 如果用户在 15 分钟后返回应用程序 则视图应重新加载数据 我正在考虑使用viewDidDisappear当应用程序进入后台时保存时间戳viewDidAppear用于检查以前保存的
  • 更新复选框并从颤动对话框中返回值

    我正在尝试将一些城市列表添加到带有复选框的对话框中 以便我需要实现多次单击项目 我正在尝试做的事情如下所示 onPressed从按钮调用 Rest Service 并在成功结果时我只显示一个对话框 void showCityDialog B
  • 其余 api 设计和上传图像的工作流程。

    我想设计一个API 允许客户端上传图像 然后应用程序创建图像的不同变体 例如调整大小或更改图像格式 最后应用程序将每个变体的图像信息存储在数据库中 当我尝试确定执行此任务的正确策略时 就会出现问题 以下是我能想到的一些不同策略 策略一 发送
  • 让实体框架使用 Contains 而不是 Like 并解释“ESCAPE ~”

    我在 EF 中使用了一行 LINQ 它基本上是在做myTable Where c gt c Contains mystring 这是生成的代码 SELECT TOP 300 Extent1 ID AS ID Extent1 FKFishEn
  • Zend Framework 2 的注释命名空间未加载 DoctrineMongoODMModule

    我已经加载了 zf2 的 Doctrine MongoODM 模块 我的控制器中有文档管理器 一切都很顺利 直到我尝试保留文档 它因以下错误而失败 语义错误 SdsCore Document User 类中的注释 Document 从未导入
  • 使用龙目岛项目安全吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如果你不知道龙目岛计划 http projectlombok org帮助解决 Java 的一些烦恼 比如生成带注释的 getter 和 sett
  • Heroku 应用程序崩溃并显示“libruby.so.1.9:无法打开共享对象文件”[已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我在部署这
  • 如何使用 jquery 添加一个元素始终作为最后一个元素?

    无论如何 我希望将某个 div 添加为列表中的最后一个元素 有什么方法可以明确指定这一点吗 list append div div 会将其附加到 list 的最后 如果你想将它附加到最后一个div 以防万一之后还有其他元素 那么你可以使用
  • 在 matplotlib 中使用 SymLogNorm 标准化格式化颜色条刻度标签

    TL DR 你怎么 强制LogFormatter对每个标签都使用科学记数法 现在它使用它的值小于0或大于1000 似乎并没有暴露任何set powerlimit我也能找到的方法 有什么方法可以做到正确或者您应该使用不同的格式化程序吗 哪一个
  • 如何在mysql的现有表中添加另一个字段

    Okay I have these table 我这里还有另一张桌子 那么 idAlbum 在 gallery 表中 对此的查询是什么 我想从一个表中的一个字段中选择数据并将其插入到另一表中的字段中 如果您想在 PhpMyAdmin 中的现
  • 递归地从同一个表父子表中获取最后一条记录

    我想从同一张表中获取最后一个参考 ID 我有下表 ID UserId DelegatedToUserId 1 100 101 2 101 102 3 102 103 4 103 NULL 5 104 109 我就是无法思考 我知道我想要什么
  • 查找所有显示器的编号和分辨率

    如何轮询窗口来查看连接的显示器以及它们运行的 分辨率 In C Screen Class http msdn microsoft com en us library system windows forms screen aspx表示单个系
  • R 中的堆叠条形图与线条图

    我想将以下堆积条形图放在一起 与直线曲线 但为什么下面的代码不起作用呢 正确的做法是什么 x lt c 0 1 2 3 4 5 6 7 8 9 10 11 12 To plot line emp dens lt c 0 107 0 184
  • 是否可以默认使用 SDL Tridion 2011 CME 的“主视图”而不是仪表板?

    SDL Tridion 2011 在 CME 中引入了新的仪表板 或控制面板 在下面User Preferences gt View Settings在该页面上 用户可以更改其启动视图以加载主视图而不是仪表板 是否可以将其设置为所有用户的系
  • Android studio 3.4.2 R8混淆器不混淆类名,只混淆里面的java代码

    当我升级到最新的时候Gradle版本中 我的类名不再被混淆 当前工作室版本是3 4 2 由于最新版本使用R8混淆而不是Proguard 我把之前的配置去掉了proguard rules pro因为它几乎什么也不做 我还在用 buildTyp
  • 为图像添加标题[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 使用最新的 HTML CSS 在网络上为图像添加标题的最巧妙方法是什么 请演示代码 有几种语义方法可以标记图像及其标题 老派方式 一种
  • .remove() 之后的 d3 回调函数

    我想知道我的所有行何时被删除 以便我可以调用另一个函数 svg selectAll line transition duration 2500 style stroke opacity 0 remove 我知道我可以使用 each end