【问题标题】:Google map infowindow fires click event twice谷歌地图信息窗口两次触发点击事件
【发布时间】:2014-01-16 08:29:23
【问题描述】:

我正在使用谷歌地图 API v.3。我在 infowindow 上添加了一张图片,并想处理该图片的点击事件。但是点击事件会触发两次。这是我的代码-

var mapOptions = {center: new google.maps.LatLng(lat,lng), zoom: 15, mapTypeId:   google.maps.MapTypeId.ROADMAP};
var infoWindow = new google.maps.InfoWindow();
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var myLatlng = new google.maps.LatLng(lat,lng);
var data = {}; data.title = 'title'; data.lat = lat;data.lng = lng;
data.description = '<img class="test-image" src="src"';
var marker = new google.maps.Marker({position: myLatlng, map: map,title: 'title'});

(function (marker, data) {
    google.maps.event.addListener(marker, "click", function (e) {
                                infoWindow.setContent(data.description);
                                infoWindow.open(map, marker);
                            });


    google.maps.event.addDomListener(infoWindow, 'domready', function () {
                                $('.test-image').click(function () {
                                    alert("Hello World");
                                });
                            });                              
 })(marker, data);

我怎样才能摆脱这个问题?

谢谢你的期待。

【问题讨论】:

    标签: jquery google-maps-api-3 infowindow


    【解决方案1】:

    我不能告诉你这种行为的原因,但是当你使用addListenerOnce 并在标记的click-callback 中应用domready-listener 时,它可能会得到修复:

    (function (marker, data) {
        google.maps.event.addListener(marker, "click", function (e) {
          google.maps.event.addListenerOnce(infoWindow, 'domready', function () {
             $('.test-image').click(function () {
                  alert("Hello World");
            });
          });       
          infoWindow.setContent(data.description);
          infoWindow.open(map,marker);
        });
    })(marker, data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-28
      • 2018-03-26
      • 2018-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      相关资源
      最近更新 更多