javascript - 谷歌地图 API : force map to do not handle click inside infobox

标签 javascript jquery google-maps google-maps-api-3

在我的应用程序中,用户在单击 map 时创建标记。所以代码如下:

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”时,他还会在 map 上创建新标记。我怎样才能避免这种情况?

最佳答案

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

将事件变量传递给点击函数(e),然后使用e.stopPropagation()停止事件传播

这将阻止事件通过 DOM 冒泡并被各种其他监听器(例如 map 上的监听器)拾取。

关于javascript - 谷歌地图 API : force map to do not handle click inside infobox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11945951/

相关文章:

iphone - 获取两个位置之间的路线方向

javascript - Google Map JS API v3 标记不可点击

javascript - 如何使用日志数组中的最新时间戳创建新数组

javascript - 单选按钮中的 ng-model 类型更改

google-maps - 自定义 Google map 信息气泡

php - 如何通过 PHP 上的谷歌地图知道某个地点是否存在

JavaScript 按钮函数交换

javascript - 下拉菜单使用 data- 显示子菜单

javascript - 如何从表单中的所有输入复制自定义属性然后分配回来?

jquery - typeahead.js 在按钮单击时获取输入值