首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对可拖动PowerCharts图中的更改做出反应

对可拖动PowerCharts图中的更改做出反应
EN

Stack Overflow用户
提问于 2012-04-17 18:59:41
回答 1查看 236关注 0票数 1

我在用drag-able line chart from the FusionCharts PowerCharts package

我需要获得图形的数据,并将其发送到服务器端进行进一步处理后,用户已经移动了一个可拖拽的点。使用图形中内置的Submit按钮很容易做到这一点,但我希望用户不必单击Submit按钮就可以实现这一点。

根据文档(特别是基于events),当用户在图表中移动一个点时,图表似乎不会触发任何事件。

因此,现在我正在尝试找出通知用户对图形所做更改的最佳方式?

一种选择是定期调用JS函数,该函数将获取图形的数据,并检查自上次检查以来是否发生了更改。然而,这感觉相当丑陋和低效,我目前不知道如何在JS中实现连续轮询。

我现在倾向于只监听图形所在元素上的鼠标释放事件,然后检查对图形先前状态的更改。这应该是可行的,尽管用户可能会经常在图形上单击,而不是实际拖动其中的一个点。

我是不是遗漏了一些其他显而易见的解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-18 00:33:18

在我们达成解决方案之前,我想提出一些事情:

  1. 轮询总是一个坏主意。而且短时间间隔的轮询更糟糕。但是,如果您不需要在拖动数据点时自发地做出反应,那么高间隔轮询就可以了。作为你的信息,轮询是通过使用setTimeout.
  2. In函数或递归窗口在JavaScript上完成的,如果你想跟踪鼠标事件,请注意,如果你正在渲染setInterval图表,你需要确保图表的wMode (窗口模式)参数没有设置为"window“。在“窗口”wMode中,当鼠标悬停在图表上时,浏览器不会跟踪鼠标事件。若要更改图表的wMode,请确保在呈现图表之前执行chartInstance.setTransparent(false)chartInstance.setTransparent(true)

您计划的鼠标事件方法将不会对您有所帮助,因为您将不知道用户是否已经单击了数据点。因此,这种方法被排除了。

因此,剩下的就是轮询。:(

更新(在Janne的第一条评论之后):当图表上发生拖动事件时,使用两者的组合来检查数据更改是正确的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10189934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档