echarts學(xué)習(xí)之legend點擊事件解讀
更新時間:2023年03月29日 08:50:01 作者:King_960725
這篇文章主要介紹了echarts學(xué)習(xí)之legend點擊事件解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
echarts legend點擊事件
首先,明確本篇文章的重點,主要有三個:
1. 給legend添加點擊事件
2. 禁用legend點擊事件的默認行為(類型checkbox多選框)
3. 解決點擊事件重復(fù)觸發(fā)問題
問題一
let myCharts = Echarts.init(document.getElementById('bar'))
let x = []
let y1 = []
let y2 = []
let idList = []
val.forEach(e => {
? x.push(e.name)
? y1.push(e.invitationNum)
? y2.push(e.totalMoney / 100)
? idList.push(e.id)
}) // 這些都是自己做的一些數(shù)據(jù)處理,可以忽略
let option = {
? title: {
? ? text: name + '前十用戶',
? ? left: 'center'
? },
? ...其他代碼
}
myCharts.on('legendselectchanged', (e) => {
? alert('點擊了') // 如果不加off事件,就會疊加觸發(fā)
})
myCharts.setOption(option)問題二
myChart.on('legendselectchanged', function (params) {
? ? myChart.setOption({
? ? ? ? legend:{selected:{[params.name]: true}}
? ? })
? ? console.log('點擊了', params.name);
? ? // do something
});問題三
let myCharts = Echarts.init(document.getElementById('bar'))
myCharts.off('legendselectchanged') //解決重復(fù)觸發(fā)
...
...
myCharts.on('legendselectchanged', (e) => {
? alert('點擊了') // 如果不加off事件,就會疊加觸發(fā)
})
myCharts.setOption(option)Echarts自己控制legend點擊事件
先看需求

現(xiàn)在想實現(xiàn)的 情況是
- 一進去頁面,所有的 Echarts 中 legend 的所有選項都是默認選中的狀態(tài)(這是 Echarts 默認的)
- 然后當(dāng)“9”號標(biāo)識,也就是“一#斗”點亮?xí)r,與之相對應(yīng)的“1、2、3”倉位,即“石灰石、污泥球、生白”也必須點亮,
- 然后 “9”號點亮之后 “1、2、3”號倉位也可以自己控制自己的 點亮還是關(guān)閉,
- 然后當(dāng)“9”號再次從關(guān)閉變成點亮的狀態(tài)時,“1、2、3” 會再次點亮。
var dou1_legend_flag = false;
myChart.on('legendselectchanged', function (params) {
var option = this.getOption();
//當(dāng)前echarts圖例選項
var select_key = Object.keys(params.selected);
//當(dāng)前圖例的選項是否選中 選中為true 未選中為false
var select_value = Object.values(params.selected);
if (option.legend[0].selected.hasOwnProperty("1#斗")) {
if (option.legend[0].selected["1#斗"] == true) {
if (!dou1_legend_flag) {
// 控制legend 的顯示和隱藏 直接控制 selected 中對應(yīng)名稱的真假值就可以
option.legend[0].selected[option.legend[0].data[0]] = true;
option.legend[0].selected[option.legend[0].data[1]] = true;
option.legend[0].selected[option.legend[0].data[2]] = true;
myChart.setOption(option);
dou1_legend_flag = true;
}
} else {
dou1_legend_flag = false;
}
}
});
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序--獲取用戶地理位置名稱(無須用戶授權(quán))的方法
這篇文章主要介紹了微信小程序-獲取用戶地理位置名稱(無須用戶授權(quán))的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
nest.js 使用express需要提供多個靜態(tài)目錄的操作方法
這篇文章主要介紹了nest.js 使用express需要提供多個靜態(tài)目錄的操作,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Bootstrap 設(shè)置datetimepicker在屏幕上面彈出設(shè)置方法
datetimepicker默認是在輸入框下面彈出的,但是遇到輸入框在屏幕下面時,日期選擇框會有一部分在屏幕下面,顯示不了,因此需要能夠從上面彈出,下面小編給大家介紹下Bootstrap 設(shè)置datetimepicker在屏幕上面彈出的設(shè)置方法2017-03-03

