2017-06-13 15 views
0

カスタム削除ボタンを使用してGoogleマップからマーカーを削除しようとしています。私はインフォ・ウィンドウにボタンやその他の情報を追加しました。 マップからマーカーを削除する関数がありますが、関数が呼び出されていない関数を削除ボタンを押すと問題になります。おそらくそこに削除ボタンでonclick属性と間違って何かがあるが、私はわからないカスタム削除ボタン付きのGoogleマップからマーカーを削除する

function initMap() { 

var jsonData = {$pointsArray}; 

var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 4, 
     maxzoom: 15, 
     center: { 
      lat: 38, 
      lng: -77 
     } 
    }); 

function addInfoWindow(marker, message) { 

     var infoWindow = new google.maps.InfoWindow({ 
      content: message 
     }); 

     google.maps.event.addListener(marker, 'click', function() { 
      infoWindow.open(map, marker); 
     }); 
    } 

var bounds = new google.maps.LatLngBounds(); 

for (var i = 0, len = jsonData.length; i < len; ++i) { 

    var point = jsonData[i]; 
    var uniqueId = 1; 
    var markers = []; 
    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(point.Lat, point.Lon), 
     map: map, 
     title: point.Title 
    }); 

bounds.extend(marker.position); 
marker.id = uniqueId; 
     uniqueId++; 

    var contentString = '<div id="content">'+ 
        '<h4 id="pointId" > ' + point.Title + '</h4>'+ 
        '<h6 >City: ' + point.City + '</h6>'+ 
        '<h6 >Latitude: ' + point.Lat+ '</h6>'+ 
        '<h6 >Longitude: ' + point.Lon + '</h6>'+ 
        '<h6 >Address: ' + point.Address + '</h6>'+ 
        '<p data-placement="top" data-toggle="tooltip" title="Delete"><a href="" onclick= "DeleteMarker("+ marker.id +" );" class="btn btn-danger btn-xs" data-title="Delete" data-toggle="modal"><span class="glyphicon glyphicon-trash"></span></a></p>' 

        '</div>'; 
    addInfoWindow(marker, contentString); 
    markers.push(marker); 
} 

function DeleteMarker(id) { 

    for (var i = 0; i < markers.length; i++) { 
     if (markers[i].id == id) { 
      markers[i].setMap(null); 
      markers.splice(i, 1); 
      return; 
     } 
    } 
}; 

    map.fitBounds(bounds); 
} 

は、ここに私のコードです。 ヘルプ!

+0

ボタンを押すと何が呼び出されるのですか?つまり、ボタンのコードです。 –

答えて

0

属性値として '文字列には'を使用したため、marker.idにパラメータを指定したいときには '代わりに'を使用する必要があると思います。 "あなたは単にonclick値の属性文字列を中断します。

+0

私もそれを試みましたが、デバッグ中に構文エラーが発生します。 私はこれを次のように変更しました: 'DeleteMarker( "+ marker.id +");' 、does not work。 –

+0

'で始まる文字列を持っていて、文字列の中でもう一度\'を使用したい場合は、このように '...... onclick = "DeleteMarker(\ '+ marker.id +' \ '); "....." – js4444

関連する問題