Javascript 对可拖动的PowerCharts图形中的更改作出反应

Javascript 对可拖动的PowerCharts图形中的更改作出反应,javascript,javascript-events,fusioncharts,Javascript,Javascript Events,Fusioncharts,我在用电话 我需要获得图形的数据,并在用户移动了一个可拖动点后将其发送到服务器端进行进一步处理。这很容易通过图形中内置的Submit按钮实现,但我希望用户无需单击Submit按钮即可实现 根据文档(尤其是在上),当用户移动图形中的某个点时,图表似乎不会触发任何事件 所以现在我想找出最好的方法来通知用户对图表所做的更改 一个选项是定期调用JS函数,该函数将获取图形的数据,并检查自上次检查以来是否发生了更改。然而,这感觉非常丑陋和低效,我目前不知道如何在JS中实现连续轮询 我现在倾向于只监听图形所在

我在用电话

我需要获得图形的数据,并在用户移动了一个可拖动点后将其发送到服务器端进行进一步处理。这很容易通过图形中内置的Submit按钮实现,但我希望用户无需单击Submit按钮即可实现

根据文档(尤其是在上),当用户移动图形中的某个点时,图表似乎不会触发任何事件

所以现在我想找出最好的方法来通知用户对图表所做的更改

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

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


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

在我们达成解决方案之前,我想提出以下几点:

  • 投票总是个坏主意。而在短时间间隔内进行投票则更糟糕。然而,若您不需要在拖动数据点时自发地做出反应,则可以使用高间隔轮询。关于您的信息,轮询是通过使用函数或递归在JavaScript上完成的
  • 如果要跟踪鼠标事件,请注意,如果要渲染Flash图表,则需要确保图表的
    wMode
    (窗口模式)参数未设置为“窗口”。在“窗口”wMode中,当鼠标悬停在图表上时,浏览器不会跟踪鼠标事件。要更改图表的
    wMode
    ,请确保在呈现图表之前执行
    chartInstance.setTransparent(false)
    chartInstance.setTransparent(true)
  • 您计划的鼠标事件方法对您没有帮助,因为您不知道用户是否单击了数据点。因此,排除了这种方法

    因此,只剩下轮询:(

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

    在我们达成解决方案之前,我想提出以下几点:

  • 轮询总是一个坏主意。短时间间隔的轮询更糟糕。但是,如果您不需要在拖动数据点时自发地做出反应,则可以使用高时间间隔轮询。关于您的信息,可以使用函数或递归在JavaScript上完成轮询
  • 如果要跟踪鼠标事件,请注意,如果要渲染Flash图表,则需要确保图表的
    wMode
    (窗口模式)参数未设置为“窗口”。在“窗口”中wMode,当鼠标悬停在图表上时,浏览器不会跟踪鼠标事件。要更改图表的
    wMode
    ,请确保在渲染图表之前执行
    chartInstance.setTransparent(false)
    chartInstance.setTransparent(true)
  • 您计划的鼠标事件方法对您没有帮助,因为您不知道用户是否单击了数据点。因此,排除了此方法

    因此,只剩下轮询:(

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

    谢谢您的回答。我可能仍然会使用鼠标跟踪,只需检查图表数据自上次鼠标单击后是否已更改,以确定用户是否更改了任何内容。顺便说一句,既然您在FusionCharts工作,请不要你知道有没有计划让可拖动图表在用户单击数据点时触发事件?有计划。现在还不远。但我不确定日期。谢谢你的回答。我可能仍然会使用鼠标跟踪,只需检查图表数据自上次鼠标单击后是否已更改,以确定用户是否更改了事件顺便问一下,既然你在FusionCharts工作,你知道有没有什么计划让拖拽图表在用户点击数据点时触发事件?有计划。不远。但我不确定日期。