$(document).on('click', '.entity', function (e) {
...
})
我正在使用上述方法来处理我网站上任何“实体”的点击。除了在地图上,它在任何地方都很棒我正在创建自定义叠加层,每个叠加层都是实体类的元素。这已在DOM中得到证实。我应用的所有CSS都有效,但是click事件似乎没有传播到文档级别。我把警报放进去进行测试,然后就开始了。点击功能为空白,没有任何反应。如何阻止它阻止?
mymap.gmap3({
map:{
options:{
...
}
},
overlay:{
values: [
...
],
events:{
click: function () {
alert('clicked map entity');
},
...
答案 0 :(得分:1)
检查以下插件:
/*!
* GMAP3 Plugin for JQuery
* Version : 5.1.1
* Date : 2013-05-25
第343行:function OverlayView(map, opts, latLng, $div)
包含以下代码:
...
this.onAdd = function() {
var panes = this.getPanes();
if (opts.pane in panes) {
$(panes[opts.pane]).append($div);
}
$.each("dblclick click mouseover mousemove mouseout mouseup mousedown".split(" "), function(i, name){
listeners.push(
google.maps.event.addDomListener($div[0], name, function(e) {
$.Event(e).stopPropagation();
google.maps.event.trigger(that, name, [e]);
that.draw();
})
);
});
listeners.push(
google.maps.event.addDomListener($div[0], "contextmenu", function(e) {
$.Event(e).stopPropagation();
google.maps.event.trigger(that, "rightclick", [e]);
that.draw();
})
);
}; ...
为点击和其他一些事件调用$.Event(e).stopPropagation();
。这显然会阻止事件的传播。
评论这两行可以解决这个具体问题。但是,问题是可能产生的后果。