這個東西其實很簡單,解決思路就是建立一個外部函數,將要使用的參數傳遞過去,這樣全部的點擊事件就都能持久存在。html
var data_info =new Array(); var optss = new Array(); var markers = new Array(); var contents = new Array(); var points = new Array(); for(var i=0;response.data.length>i;i++){ var data_tow=[]; data_tow.push(response.data[i].latitude,response.data[i].longitude,"時間:"+response.data[i].creationTime); data_info.push(data_tow); optss.push({ width : 25, // 信息窗口寬度 height: 30, // 信息窗口高度 title : "設備編號:"+response.data[i].facilityId , // 信息窗口標題 }); contents.push(data_info[i][2]); points.push(new BMap.Point(data_info[i][0],data_info[i][1])); markers.push(new BMap.Marker(points[i])); map.addOverlay(markers[i]); var infoWindow = new BMap.InfoWindow(contents[i],optss[i]); // 建立信息窗口對象 biaozhu(infoWindow,points[i]); } function biaozhu(infoWindow,point){ markers[i].addEventListener('click', function(){ this.openInfoWindow(infoWindow,point); }); } console.log(response); }) .catch(error => { console.log(error); })
個人思路是將各類我須要用到的數據(marker,point等等須要使用多個的數據)都用一個數組保存起來方便使用git