关于百度EChart 与dataTables 之间交互问题的解决方案(利用js全局变量)
2016-10-28 11:00
537 查看
在后台数据统计,同时利用ECharts生成统计图,以及dataTables统计数据列表。有时便会需要进行图表之间的交互,从而带给用户更加直观的数据体验。如下图需求:
先由ECharts生成本月每天销售数据统计图,然后达到单击统计图每日柱形时,呼出左下角当天各店铺销售统计的dataTables表。
点击另外一天直接切换到另一天的数据表。但是,由于dataTables在同一dom创建dataTables实例时,必须销毁之前已经建立的dataTables。因此,需要利用js的全局变量记忆每次生成的dataTables实例。
模板代码:
将绘图表独立封装到方法之中:
交互:
先由ECharts生成本月每天销售数据统计图,然后达到单击统计图每日柱形时,呼出左下角当天各店铺销售统计的dataTables表。
点击另外一天直接切换到另一天的数据表。但是,由于dataTables在同一dom创建dataTables实例时,必须销毁之前已经建立的dataTables。因此,需要利用js的全局变量记忆每次生成的dataTables实例。
模板代码:
<div> <div id="lineChart" style="height:390px"></div> </div> <table class="stores-table" width="100%"> <thead> <tr> <th>排序</th> <th>店铺</th> <th>下单用户</th> <th>订单数量</th> <th>订单总额</th> <th>操作</th> </tr> </thead> <tbody class="stores-list"> ...... </tbody> </table>
将绘图表独立封装到方法之中:
//创建统计图 function createChart(data){ var chart = echarts.init(document.getElementById('lineChart')); 。。。。。。 //具体配置参见本人之前博文(下方有链接) return chart; }
//创建店铺列表 function createStoresTable(date){ //定义全局变量 window.变量名 if (typeof(window.dt1) != "undefined") { window.dt1.destroy(); //如果存在dataTables实例,销毁 } var datat = $(".stores-table").DataTable({ //具体配置见之前博文,下有链接 }); window.dt1 = datat; //用全局变量记录dataTables }
交互:
var chart = createChart(res.data); chart.on('click',function(params){ var today = $.trim(params.name.substr(0,2)); //params.name即为横坐标值 var newdate = date +"-"+ today; createStoresTable(newdate); });
相关文章推荐
- 关于js全局变量数组push数据时dom中无数据的问题
- 关于JS全局变量问题
- 关于多线程编程中与全局变量通信的问题
- JS利用函数修改全局变量
- 关于 vs2005 添加类或者变量 出错问题的解决方案
- 主程序与DLL之间的全局变量问题
- 关于js加载iframe出现空白问题的解决方案
- 技术总结:关于JS执行前台和后台顺序的.另外一个是前后和后台变量的交互的.
- js中全局变量的问题
- 主程序与DLL之间的全局变量问题
- 关于Bat脚本之间变量共享的若干问题
- 关于头文件定义全局变量等问题
- 构造函数的职责 -- 关于全局变量的构造函数里执行太多复杂操作导致的问题
- swf之间的交互(上)全局变量VS全局派发事件
- 主程序与DLL之间的全局变量问题
- 一个关于全局变量位置的问题
- 提交字符数长度在[1000,2000]即字符数长度在1000到2000之间的时候报:关于“ora-01483:DATE或NUMBER赋值变量的长度无效”的问题
- 奇怪的问题,关于js+css实现页面内容高度自适应的两种解决方案
- 关于引用js文件中出现乱码问题的解决方案
- 转载:关于C语言头文件的应用问题,主要还是关于全局变量的定义和声明问题