点击未在Firefox中触发的事件(Google地图)

时间:2015-03-22 16:42:03

标签: javascript google-maps firefox events

这个代码在所有浏览器中都很好用,除了firefox浏览器。 点击活动无法正常工作。

var marker = new RichMarker({
        position: new google.maps.LatLng( _latitude, _longitude ),
        map: map,
        draggable: draggableMarker,
        content: markerContent,
        flat: true
    });

google.maps.event.addListener(marker, "click", function(event) {

    alert(this.position);

});  

我如何解决这个问题? THX。

1 个答案:

答案 0 :(得分:2)

问题似乎是http://googlemaps.github.io/js-rich-marker/src/richmarker.js

的第615行
 this.markerWrapper_.setCapture(true);

当您在内部向标记添加点击侦听器时,单击标记的内容时将触发单击事件。使用上面的行,click-event将仅针对内容的包装器触发(当标记可拖动时发生)。

您需要修改函数addDraggingListeners_,将其设置为:

RichMarker.prototype.addDraggingListeners_ = function() {
  var that = this;
    this.draggingListeners_ = [
      google.maps.event.addDomListener(window, 'mousemove', function(e) {
        that.drag(e);
      }, true),
      google.maps.event.addDomListener(window, 'mouseup', function() {
        that.stopDrag();
      }, true)
    ];
};