echars 双击事件 问题

在echars 3.x 4.x 我是用dblclick没管用,没效果。

单击变双击,模拟笨办法:函数代码

			var g_clickTime=null;
			var g_TimeFn = null;
			var g_onItemName = null;
			<!-- myDate.getMilliseconds(); -->
			myChart.on('click', function (params) {
    
    
				var myDate = new Date();
				if (g_clickTime == null){
    
    
					//第一次进来
					g_clickTime = myDate.getMilliseconds();
					g_onItemName = params.name;
					//起一个定时器,进行重置
					g_TimeFn = setTimeout(function(){
    
    
						//要执行的代码
						g_clickTime=null;
					},300);
				}else{
    
    
					clearTimeout(g_TimeFn);
					//第二次进来,
					if( Math.abs(myDate.getMilliseconds()-g_clickTime) < 300 && g_onItemName == params.name){
    
    
						//是双击操作
						console.log(params);
					}
					g_clickTime=null;
				}
			}); 

全部测试代码,复制到txt文件,修改扩展名为.html直接用浏览器打开。打开开发工具。

<!DOCTYPE html>
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
   </head>
   <body style="height: 100%; margin: 0">
       <div id="container" style="height: 100%"></div>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/world.js"></script>
       <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=ZUONbpqGBsYGXNIYHicvbAbM"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/bmap.min.js"></script>
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/simplex.js"></script>
       <script type="text/javascript">
			var dom = document.getElementById("container");
			var myChart = echarts.init(dom);
			var app = {
    
    };
			option = null;

			var categories=[];
			for (var i = 0; i < 4; i++) {
    
    
				categories[i]={
    
    name: '类目a' + i};
				<!-- categories[i] = ['类目a' + i]; -->
			}
			<!-- categories[2]={
    
    name,categories[2][1]}; -->
			<!-- console.log(categories[2][1]); -->
			console.log(categories);

			var datas=[];
			var edges=[];
						
						<!-- datas -->

			//产生随机数函数
			function RndNum(min, max){
    
    
				return Math.floor(Math.random()*(max-min+1)+min);
			}
			//一个50000,
			// 30个
			//获取当前屏幕的宽高,屏幕比例width-->屏幕宽度   heigh-->屏幕高度   sacle-->查看当前是几倍分辨率屏幕  2X、3X
			var width=document.body.clientWidth;
			var height=document.body.clientHeight;


			var yAxis=10000;
			var xAxis=width/height*yAxis;
			var ylevel_0=0;
			var ylevel_1=yAxis/10*2;
			var ylevel_2=yAxis/10*3+ylevel_1;
			var ylevel_3=yAxis/10*5+ylevel_2;
			var xlevel_0=0;
			<!-- console.log(width, height); -->
			<!-- console.log(xAxis, yAxis); -->
			var levelInterval=100
			var groupInterval=30


			for (var i=0;i<3000;i++)
			{
    
     
				datas.push({
    
    name: '节点1'+i, y: RndNum(ylevel_2, ylevel_3), x: RndNum(xlevel_0,xAxis) ,symbolSize: RndNum(0,5), category:1});
			}

			for (var i=0;i<700;i++)
			{
    
     
				datas.push({
    
    name: '节点2'+i, y: RndNum(ylevel_1, ylevel_2), x: RndNum(xlevel_0,xAxis) ,symbolSize: RndNum(5,10) , category:2});
			}

			for (var i=0;i<200;i++)
			{
    
     
				datas.push({
    
    name: '节点3'+i, y: RndNum(ylevel_0, ylevel_1), x: RndNum(xlevel_0,xAxis) ,symbolSize: RndNum(15,20) , category:3});
			}


			datas.push({
    
    name: 'xy0-0', y: 0, x: 0 ,symbolSize: 20, category:0 });
			datas.push({
    
    name: 'xy0-3', y: 10000, x: 0 ,symbolSize: 20,category:0 });
			datas.push({
    
    name: 'xy7-0', y: 0, x: xAxis ,symbolSize: 20,category:0 });

			edges.push({
    
    source: 'xy0-0', target: 'xy0-3',  value:'',  lineStyle: {
    
       normal: {
    
        width: 1,    opacity:1 , color:'black'     }   },});
			edges.push({
    
    source: 'xy7-0', target: 'xy0-0'  });



						
			option = {
    
    
				title: {
    
    
					text: 'Graph 简单示例'
				},
				xAxis: {
    
    
					show: true,
					<!-- silent: true, -->
					min:0,
					max:xAxis,
					splitNumber:7,
					boundaryGap:false,
					splitLine:{
    
    interval:2,lineStyle:{
    
    width:2,color: 'black'}},
					

				},
				yAxis: {
    
    
					show: true,
					<!-- silent: true, -->
					
					min:0,
					max:yAxis,
					splitNumber:3,
					boundaryGap:false,
					splitLine:{
    
    interval:2,lineStyle:{
    
    width:2,color: 'green'}},
					axisLabel: {
    
    
						formatter: function (value, index) {
    
    
							return 'level '+index;
						}
					}


				},
				legend: [{
    
    
					// selectedMode: 'single',
					data: categories.map(function (a) {
    
    
							return a.name;
						})
				}],
				tooltip: {
    
    },
				animationDurationUpdate: 1500,
				animationEasingUpdate: 'quinticInOut',
				series : [
					{
    
    
						
						type: 'graph',
						layout: 'none',
						symbolSize: 10,
						categories: categories,
						//是否可变化
						roam: true,
						label: {
    
    
							normal: {
    
    
								show: false
							}
						},
						edgeSymbol: ['circle', 'arrow'],
						edgeSymbolSize: [4, 10],
						edgeLabel: {
    
    
							normal: {
    
    
								textStyle: {
    
    
									fontSize: 40
								}
							}
						},
						data: datas,
						// links: [],
						links: edges,

					}
				]
			};;
			if (option && typeof option === "object") {
    
    
				myChart.setOption(option, true);
			}

			<!-- 'click''dblclick''mousedown''mouseup''mouseover''mouseout''globalout''contextmenu' -->
			var g_clickTime=null;
			var g_TimeFn = null;
			var g_onItemName = null;
			<!-- myDate.getMilliseconds(); -->
			myChart.on('click', function (params) {
    
    
				var myDate = new Date();
				if (g_clickTime == null){
    
    
					//第一次进来
					g_clickTime = myDate.getMilliseconds();
					g_onItemName = params.name;
					//起一个定时器,进行重置
					g_TimeFn = setTimeout(function(){
    
    
						//要执行的代码
						g_clickTime=null;
					},300);
				}else{
    
    
					clearTimeout(g_TimeFn);
					//第二次进来,
					if( Math.abs(myDate.getMilliseconds()-g_clickTime) < 300 && g_onItemName == params.name){
    
    
						//是双击操作
						console.log(params);
					}
					g_clickTime=null;
				}
			}); 


			<!-- 我是用这个双击是不管用 -->
			<!-- myChart.on('dblclick', function (params) {
    
     -->
				<!-- console.log(params); -->
			<!-- }); -->
       </script>
   </body>
</html>

猜你喜欢

转载自blog.csdn.net/liuzhuchen/article/details/84065167