如何使用d3's流星项目中的刷洗/拖动/缩放行为

How do I use d3's brushing/dragging/zoom behaviors in a meteor project?

本文关键字:拖动 缩放 项目 d3 何使用 流星      更新时间:2024-06-04

我正试图使用Meteor.js和D3.js在此基础上构建一个增强的兵力布局图。

问题是:

在这个项目和其他涉及流星框架内d3鼠标移动事件的项目中,结合鼠标事件功能会导致应用程序崩溃
我所说的break指的是崩溃、鼠标拖动时出错等,或者表现得不守规矩。

真的有两个问题:

  • 为什么会发生这种情况是什么导致了这种令人沮丧的行为?这个问题可以解决吗?还是我需要尝试使用不同的框架构建这个应用程序
  • 如何防止或避免这种行为?我试过用div为图节点构建同样的应用程序,并用jquery的可拖动功能拖动whem,效果很好,但这有点像黑客,因为我仍然不能使用D3的功能,比如刷和缩放

这里有一个链接,指向一个非常简单的部队布局编辑器版本,该编辑器被纳入流星环境中。此程序允许用户拖动节点,但所有其他功能都将丢失。拖动出现的单个节点会引发以下错误:

Uncaught TypeError: Cannot read property 'apply' of undefined

用户无法选择节点、绘制新节点或执行应用程序编程要执行的任何其他操作。

看起来"防止默认"是罪魁祸首。。。我刚刚得到了我的图表来选择节点和绘制连接。

这是拖动线无法工作的关键。事实证明d3.svg.mouse(container)已被弃用。您现在应该使用d3.mouse

这真的是个好消息,因为这意味着d3和流星比我想象的更兼容。