牛骨文教育服务平台(让学习变的简单)
博文笔记

echarts添加点击事件

创建时间:2015-09-14 投稿人: 浏览次数:46377

// 路径配置
require.config({
	paths : {
		echarts : "jquery/echarts-2.2.7/build/dist"
	}
});
// 使用EChart.js画图
function drawChart() {
	require([ "echarts", "echarts/chart/force" // 使用柱状图就加载bar模块,按需加载
	], function(ec) {
		// 基于准备好的dom,初始化echarts图表
		var myChart = ec.init(document.getElementById("myChart"));
		// 添加点击事件
		var ecConfig = require("echarts/config");
		myChart.on(ecConfig.EVENT.CLICK, eConsole);  
		var option = {
			tooltip : {
				show : false,
				trigger : "item",
				formatter : "{a} : {b}"
			},
			toolbox : {
				show : true,
				feature : {
					restore : {
						show : true
					},
				}
			},
			series : [ {
				type : "force",
				name : "关系",
				ribbonType : false,
				clickable : true,
				draggable : false,
				categories : [ {
					name : "属性"
				}, {
					name : "实例"
				} ],
				itemStyle : {
					normal : {
						label : {
							show : true,
							textStyle : {
								color : "#333"
							}
						},
						nodeStyle : {
							brushType : "both",
							borderColor : "rgba(255,215,0,0.4)",
							borderWidth : 1
						},
						linkStyle : {
							type : "curve"
						}
					},
					emphasis : {
						label : {
							show : false
						// textStyle: null // 默认使用全局文本样式,详见TEXTSTYLE
						},
						nodeStyle : {
						// r: 30
						},
						linkStyle : {}
					}
				},
				useWorker : false,
				minRadius : 15,
				maxRadius : 25,
				gravity : 1.1,
				scaling : 1.1,
				roam : false,
				nodes : [ {
					category : 1,
					name : "实例",
					value : 10,
					label : "宝马",
				}, {
					category : 0,
					name : "属性1",
					value : 6,
					label : "宝马X1"
				}, {
					category : 0,
					name : "属性2",
					value : 6,
					label : "宝马X5"
				}, {
					category : 0,
					name : "属性3",
					value : 6,
					label : "宝马3系"
				}, {
					category : 0,
					name : "属性4",
					value : 6,
					label : "宝马7系"
				}, {
					category : 0,
					name : "属性5",
					value : 6,
					label : "宝马X6"
				}, {
					category : 0,
					name : "属性6",
					value : 6,
					label : "宝马1系"
				}, {
					category : 0,
					name : "属性7",
					value : 6,
					label : "宝马i8"
				} ],
				links : [ {
					source : "属性1",
					target : "实例",
					weight : 1,
					name : "属性1"
				}, {
					source : "属性2",
					target : "实例",
					weight : 1,
					name : "属性2"
				}, {
					source : "属性3",
					target : "实例",
					weight : 1,
					name : "属性3"
				}, {
					source : "属性4",
					target : "实例",
					weight : 1,
					name : "属性4"
				}, {
					source : "属性5",
					target : "实例",
					weight : 1,
					name : "属性5"
				}, {
					source : "属性6",
					target : "实例",
					weight : 1,
					name : "属性6"
				}, {
					source : "属性7",
					target : "实例",
					weight : 1,
					name : "属性7"
				}, ]
			} ]
		};

		// 为echarts对象加载数据
		myChart.setOption(option);
		
	});
}

function eConsole(param) {  
    if (typeof param.seriesIndex == "undefined") {  
        return;  
    }  
    if (param.type == "click") {  
        alert(param.name);  
    }  
}  

在html中建一个空的div,id是myChart,onclick事件是drawChart(),即可运行得到结果。

实现节点可点击,重点在于三行代码,如下:

var ecConfig = require("echarts/config");
myChart.on(ecConfig.EVENT.CLICK, eConsole);
clickable : true,


重要的事情说三遍:<div id="myChart" class="myChart"></div>一定要设置宽和高、一定要设置宽和高、一定要设置宽和高!!!
刚刚因为忘记给myChart设置宽,导致图无法显示,找了一天才找到原因!!!

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。