1

私のアプリでは、ユーザーが地図をクリックしたときにマーカーを作成します。したがって、次のようにコーディングします。

function placeMarker(map, location) {
     var marker = new google.maps.Marker({
         position: location,
         map: map
     //other...
     var infowindow = new google.maps.InfoWindow({
         content: ballon.get(0)
     });

     ballon.find("#delete-btn").click(function(){
        infowindow.close();
        $mapPreview.data("markers")[id].marker.setMap(null);
        delete $this.data("markers")[id];
     });
});

"#delete-btn"中にありinfowindowます。問題は、ユーザーがクリックする"#delete-btn"と、マップ上に新しいマーカーも作成されることです。どうすればこれを回避できますか?

4

1 に答える 1

1
baloon.find("#delete-btn").click(function(e){
    e.stopPropagation();

イベント変数をクリック関数に渡し、(e)を使用してイベントの伝播を停止しますe.stopPropagation()

これにより、イベントがDOMを介してバブリングし、マップ上のリスナーなどの他のさまざまなリスナーによってピックアップされるのを防ぐことができます。

于 2012-08-14T04:51:29.670 に答える