`

Anychart图表系列五之事件监听

 
阅读更多

创建图表事件监听非常简单:首先是通过addEventListener('监听类型',js监听方法)添加事件监听,然后在js监听方法中定义具体监听逻辑。

以钻取操作为例,当用户点击图表某一个point的时候弹出point的name和value,代码如下:

<script>
//创建AnyChart
var chart = new AnyChart();
//添加钻取操作"pointClick"事件监听
chart.addEventListener('pointClick', onPointClick);

//钻取操作事件Event Handler
function onPointClick(e) {
// 读取point name
var name=e.data.Name;
// 读取point value
var value=e.data.YValue;
// 读取自定义属性point attribute
var attribute = e.data.Attributes['test'];
//弹出提示框
alert("point_name="+name+"  point_value="+value);
}
</script>

 

我们项目有一个需求是:点击图表某一个point的时候可以穿透打开一个新页面,这个新页面其实就是统计数据的详细列表,那么要做这样的功能就必须在图表中传入一个URL,图表在穿透时获取这个URL并打开详细列表页面。最后我是这样实现这个功能的:给每个point定义id属性,而这个id就是URL,然后在js中创建钻取事件监听,钻取时取id值再进行跳转。

<!--AnyChart配置-->
<point id="http://xxx/xxx.do?method=xx?id=xx" name="" value="">

<script>
//创建AnyChart
var chart = new AnyChart();
//添加钻取操作"pointClick"事件监听
chart.addEventListener('pointClick', onPointClick);

//钻取操作事件Event Handler
function onPointClick(e) {
//读取point id
var url=e.data.id;
//创建弹出框并访问指定地址
openDialog(url);
}
</script>

 当然有一点细节需要注意:如果id是通过后台代码拼装的,最好进行一次字符转换,否则很可能会出现XML解析错误,以java代码为例:

String url = "http://xxxx";
url = StringEscapeUtils.escapeHtml(url);

 

AnyChart支持图表“钻取”功能,除此之外还提供了鼠标移入、移出、图表创建、渲染中、渲染结束等等事件的监听,开发可以根据不同事件点去做一些特殊操作。

一个图可以监听多个不同的事件,要想监听多个,则只需要执行多次addEventListener即可。

function init() { 
// Create new chart
var chart = new AnyChart();
// Add event handlers for all point events
chart.addEventListener('pointClick', onPointClick);
chart.addEventListener('pointSelect', onPointSelect);
chart.addEventListener('pointMouseOver', onPointMouseOver);
chart.addEventListener('pointMouseOut', onPointMouseOut);
// Set data XML File
chart.setXMLFile('./data.xml');
//Output chart to "chartContainer" div
chart.write('chartContainer');
}

 更多的事件监听在这就不做赘述,大家可以访问AnyChart帮助文档学习,里面说得非常详细。

0
0
分享到:
评论

相关推荐

    anyChart的api文档

    4. **响应式设计**: anyChart图表可自动适应不同设备和屏幕尺寸,通过`responsive()`方法进一步调整响应规则。 **五、Anychart帮助文档** Anychart的帮助文档是学习和应用API的重要资源。它提供了详细的API参考、...

    Anychart API 帮助文档

    Anychart是一款强大的数据可视化工具,它提供了丰富的API接口,使得开发者可以轻松地在Web应用程序中集成交互式图表。这个“Anychart API 帮助文档”是开发者理解和使用Anychart API的重要资源,旨在提供详尽的指导...

    【Anychart】自动保存flash图片到指定目录下。

    在JavaScript中,这通常涉及到监听图表的特定事件,如“rendered”事件,该事件在图表渲染完成后触发。当这个事件发生时,我们可以调用Anychart的导出方法,并指定保存的路径和格式。 以下是一个简单的示例代码片段...

    anychart5.2.rar

    在数据分析和可视化领域,AnyChart是一款备受推崇的JavaScript图表库,它提供了丰富的图表类型和高度自定义的功能,使得数据展示更加直观、生动。本文将围绕“anychart5.2.rar”这个压缩包,详细介绍AnyChart的安装...

    Go-使用AnyChartJS图表与Go和MySQL进行数据可视化的集成模板

    使用JavaScript解析接收到的JSON数据,调用AnyChart API创建图表,设置图表类型、数据系列、轴、标题等属性。 5. **图表渲染**:在DOM中找到合适的位置,用解析后的数据渲染图表,使用户能够看到可视化的数据。 6....

    anychart实线和虚线曲线控件(支持多曲线)

    8. **响应式设计**: AnyChart图表可以自动适应屏幕尺寸变化,确保在不同设备上都有良好的显示效果。 9. **.NET集成**: 如果是在.NET环境中使用,可以借助AnyChart的.NET包装器,如AnyChart ASP.NET Web Forms或MVC...

    anychart-7.11

    3. **自定义交互**:提供了更加灵活的事件监听和处理机制,用户可以自定义图表的交互行为,如点击、悬停和拖拽等。 4. **增强的地图支持**:地图图表在7.11版本中得到了显著提升,支持更多的地理区域,且地图样式和...

    android图表开发

    除了AChartEngine,还有MPAndroidChart、AnyChart、LeakCanary等优秀的图表库供选择,它们各有特色,可以根据项目需求和性能要求进行选择。 总结,Android图表开发涉及到数据可视化、UI设计以及用户交互等多个方面...

    Android应用源码强大的统计图表库.zip

    再者,可能还有诸如Charts4Android或AnyChart这样的高级图表库,它们提供了更复杂的数据可视化解决方案,包括3D效果、地图图表等,适用于需要高级图表功能的应用。通过研究源码,你可以学习如何利用这些库来满足不同...

    Android Charts

    此外,还能通过设置触摸事件监听,实现交互式的图表,如点击获取详细数据、拖动查看等。 7. **性能考虑**: 考虑到移动设备的性能限制,处理大量数据时需要优化。可以采用异步加载、缓存策略、减少不必要的计算等...

    基于Flex的时钟实现及代码

    AnyChart提供了一系列图表类型,如柱状图、饼图、线图等,同时也支持创建复杂的数据仪表盘,比如时钟。如果在Flex项目中使用anychart,可能是为了利用其丰富的图表功能和高级的自定义选项,来创建更美观或者功能更...

    andorid-饼图&柱状图.rar

    除了MPAndroidChart库,还有其他一些图表库可以选择,例如AchartEngine、AnyChart等,它们都提供了丰富的图表类型和定制选项。 在实际应用中,饼图和柱状图常常结合使用,例如在一个统计分析应用中,饼图可以用来...

    android3D柱形图

    1. **Android图形库**:在Android上实现3D柱形图,通常会借助一些图形库,如MPAndroidChart、AChartEngine、AnyChart等。这些库提供了丰富的图表类型,包括2D和3D柱状图,且支持自定义样式和交互。 2. **...

    androidJavaChart

    6. **事件处理**:学习如何添加点击事件监听器,使得用户可以交互式地查看图表,例如点击某一数据点弹出详细信息。 7. **性能优化**:在处理大量数据时,理解如何优化图表渲染,避免过度绘制和内存泄漏,以提升应用...

Global site tag (gtag.js) - Google Analytics