內容是一個選單
理想是在選擇選項時會先把全部marker移除
再顯示對應的marker
但卻沒有成功移除
點擊觸發時console沒有出現error
想請問是哪邊有問題
$(function() {
$("#search").click(function() {
$.ajax({
method: "GET",
url: "https://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AV&CaseNo2=2&FileType=1&Lang=C&FolderType=",
dataType: "json"
})
.done(function(data) {
var markers = [];
//執行移除函式
deleteMarkers();
$.each(data, function(i, e) {
if($("#dist :selected").attr("data-i") == e.Zipcode) {
var latLng = new google.maps.LatLng(e.Py, e.Px);
var marker = new google.maps.Marker({
position: latLng,
map: map,
title: e.Name
});
markers.push(marker);
}
});
//移除的函式
function deleteMarkers() {
markers.forEach(function(e) {
e.setMap(null);
});
markers = [];
}
//可先將此段移除讓center不會跑
var site = $('select option:selected').val().split(',');
map.setCenter(new google.maps.LatLng(site[0], site[1]));
map.setZoom(13);
//
});
});
});
var map;
function initMap() {
map = new google.maps.Map(document.querySelector("#map"), {
center: {lat: 22.7025199, lng:120.4126757},
zoom: 10
});
}
不會跑 forEach 因為 markers 永遠都是空的。
var markers = [];
//執行移除函式
deleteMarkers();
...
function deleteMarkers() {
markers.forEach(function(e) {
e.setMap(null);
});
markers = [];
}