我在用drag-able line chart from the FusionCharts PowerCharts package。
我需要获得图形的数据,并将其发送到服务器端进行进一步处理后,用户已经移动了一个可拖拽的点。使用图形中内置的Submit按钮很容易做到这一点,但我希望用户不必单击Submit按钮就可以实现这一点。
根据文档(特别是基于events),当用户在图表中移动一个点时,图表似乎不会触发任何事件。
因此,现在我正在尝试找出通知用户对图形所做更改的最佳方式?
一种选择是定期调用JS函数,该函数将获取图形的数据,并检查自上次检查以来是否发生了更改。然而,这感觉相当丑陋和低效,我目前不知道如何在JS中实现连续轮询。
我现在倾向于只监听图形所在元素上的鼠标释放事件,然后检查对图形先前状态的更改。这应该是可行的,尽管用户可能会经常在图形上单击,而不是实际拖动其中的一个点。
我是不是遗漏了一些其他显而易见的解决方案?
发布于 2012-04-18 00:33:18
在我们达成解决方案之前,我想提出一些事情:
setTimeout.setInterval图表,你需要确保图表的wMode (窗口模式)参数没有设置为"window“。在“窗口”wMode中,当鼠标悬停在图表上时,浏览器不会跟踪鼠标事件。若要更改图表的wMode,请确保在呈现图表之前执行chartInstance.setTransparent(false)或chartInstance.setTransparent(true)。您计划的鼠标事件方法将不会对您有所帮助,因为您将不知道用户是否已经单击了数据点。因此,这种方法被排除了。
因此,剩下的就是轮询。:(
更新(在Janne的第一条评论之后):当图表上发生拖动事件时,使用两者的组合来检查数据更改是正确的解决方案。
https://stackoverflow.com/questions/10189934
复制相似问题