僅作記錄使用.
因項目需要, 需要實現點擊界面的某個按鈕觸發地圖的點擊事件, 將地圖上區域的名字顯示出來.
代碼實現:
// name參數為點擊區域的名字, 譬如上圖所示為"武漢市"
var test = function(name) {
? ? // 構建click事件請求參數
? ? var param = {
? ? ? ? target: {
? ? ? ? ? ? style: { _name: name },
? ? ? ? ? ? _mapType: ""
? ? ? ? },
? ? ? ? event: {}
? ? ? };
? ? ?// echart為地圖實例
? ? ?// 循環chart列表, 獲取地圖對象
? ? ?for( var chartList = echart._chartList, i = chartList.length; i--; ) {
? ? ? ? ? var o = chartList[i];
? ? ? ? ? ?// 如果為地圖
? ? ? ? ? if( "function" == typeof o["onclick"] && o["_mapTypeMap"] ) {
? ? ? ? ? ? ? ? ?o["isClick"] = true;? // 模擬點擊,騙過點擊邏輯
? ? ? ? ? ? ? ? ?param.target._mapType = o["_mapTypeMap"][name]; // 獲取點擊列表區域內的上級名字
? ? ? ? ? ? ? ? ?o.__proto__.onclick.call(o, param);? // 觸發默認的點擊事件
? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ?}
? ? ? }
}
PS: 我知道這個功能很無聊, 但這就是需求.....