最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
echarts 单击和双击实现程序代码
时间:2014-08-08 编辑:简简单单 来源:一聚教程网
所谓的模拟就是用javascript的timer定时器,进行模拟2次单击的时间差。
通用例子:
setTimeout
在jQuery的$(document).ready(function(){})里面直接开写:
代码如下 | 复制代码 |
//定义setTimeout执行方法 var TimeFn = null; $('div').click(function () { // 取消上次延时未执行的方法 clearTimeout(TimeFn); //执行延时 TimeFn = setTimeout(function(){ //do function在此处写单击事件要执行的代码 },300); }); $('div').dblclick(functin () { // 取消上次延时未执行的方法 clearTimeout(TimeFn); //双击事件的执行代码 }) |
从测试结果来看,如果前后两次点击的时间在 300ms 左右的时候,还是很容易出现 click 和 dblclick 事件被“同时”调用的情况,而如果间隔的时间更短或更长,则只会有 click 或 dblclick 事件。
至此,能一定程度上避免双击(dblclick)时触发单击(click)。
在echarts上的实现比较简单,只有在myChart绑定事件:EVENT.MAP_SELECTED。其他图形报表根据事件来,有得是click。
代码如下 | 复制代码 |
require([ 'echarts', 'echarts/chart/line', //使用线性图,加载line模块 'echarts/chart/map' ], function (ec) { // 基于已有dom,初始化图表 ecConfig = require('echarts/config'); zrEvent = require('zrender/tool/event'); myChart = ec.init(document.getElementById('main')); myChart.on(ecConfig.EVENT.MAP_SELECTED, function (param) { debugger var len = mapType.length; var mt = mapType[curIndx % len]; if (mt == 'china') { // 全国选择时指定到选中的省份 var selected = param.selected; for (var i in selected) { if (selected[i]) { mt = i; while (len--) { if (mapType[len] == mt) { curIndx = len; } } firstSeleted = mt; break; } } } else { } seleted = mt; a += 1; timer1 = setTimeout(e2, 300); }); myChart.setOption(option, true); }); function e2() { clearTimeout(timer1); if (a == 2) { alert("双击" + seleted); //双击需要判断在哪个页面双击如,全国页面双击,或者省页面双击 curIndx = 0; mt = 'china'; option.tooltip.formatter = '点击进入该省 {b}:{c}'; option.series[0].itemStyle.normal.label.formatter = '{a}:{b}'; option.series[0].mapType = seleted; option.title.subtext = seleted + ' (点击切换)'; option.series[0].data = []; parent.sendParamData(firstSeleted, a); } if (a == 1) { curIndx = 0; mt = 'china'; alert("单击" + seleted); option.tooltip.formatter = '点击返回全国 {b}:{c}'; //调用父页面的javascript 方法传入 option.series[0].mapType = seleted; option.title.subtext = seleted + ' (点击切换)'; option.series[0].data = []; //parent.sendParamData(firstSeleted,a); } if (a >=2) { curIndx = 0; mt = 'china'; } a = 0; } function dataXRand(data) { // myChart.clear(); var arr = []; var arrData = data.split(";"); for (var i = 0; i < arrData.length; i++) { var currentData = arrData[i]; var arrCurrentData = currentData.split(":"); var jsonData = { name: arrCurrentData[0], value: parseInt(arrCurrentData[1]) }; arr.push(jsonData); } option.series[0].data = arr; myChart.setOption(option, true); } |
相关文章
- 安装程序出现禁止进行安装解决方法 11-10
- CMD命令怎么结束程序 结束程序的方法 06-19
- 中国银行牌价小程序在哪 中国银行牌价小程序位置介绍 04-07
- 小睡眠app有用吗?小睡眠app小程序有什么用 03-09
- 摩拜单车小程序入口在哪 02-24
- 摩拜单车小程序怎么退押金 摩拜单车小程序需要押金吗 02-24