地图单击阻止文档单击

Map click blocks document click

本文关键字:单击 文档 地图      更新时间:2023-09-26
$(document).on('click', '.entity', function (e) { 
...
}) 

正在使用上述内容来处理我网站上任何地方的任何"实体"的点击。 除了地图,它在任何地方都很好用。 我正在创建自定义覆盖,每个覆盖都是具有实体类的元素。 这在DOM中得到了证实。 我应用的所有 CSS 都有效,但是 click 事件似乎没有传播到文档级别。 我把警报放进去进行测试,它确实会触发。 点击功能为空时,没有任何反应。 如何防止它阻塞?

mymap.gmap3({
    map:{
            options:{
               ...
            }
    },
    overlay:{
        values: [
            ...
        ],
        events:{
            click: function () {
                alert('clicked map entity');
            },
    ...

检查了以下插件:

/*!
 *  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();单击和其他一些事件。这显然阻止了事件的传播。

注释这两行可以解决此特定问题。但是,问题是可能的后果是什么。