map.clearLayers阻止Leaflet中的“click”事件

时间:2016-08-13 08:08:03

标签: javascript leaflet

这应该是替代路线的路线选择器。您单击路线并选择自己。

我试图摆脱“魔法圈”:)几天,因为经过几天和几天的调试后我发现map.clearLayers()方法以某种方式阻止了“点击”事件。

以下是这种情况:当您点击其中一条路线时,在这种情况下,您会收到警告“点击图层”。但是当你再次点击另一条路线,甚至是同一条路线时,“点击”不起作用。

所有其他事件,如doubleclick,mouseout,mousein等正在运行,但是点击不行...而且mouseup,mousedown也不起作用,这可能解决了这个问题,但是 - 没有:(

            var $li = $(li);
            route.idx = i;
            $li.data('route', route);
            $li.data('routes', routes);
            $li.on('click', function () {
                var $this = $(this);
                $this.siblings('li').removeClass('active');
                $this.addClass('active');
                renderCarOrWalkRoute($this.data('routes'), $this.data('route').idx);
            });
            $alternatives.find('.routes').append($li);
        }

        for (var i = 0; i <= route.idx; i++) {
            alternativeRoute[i] = renderAlternativeRoute($li.data('routes'), i);
        }

        $($alternatives.find('li')[0]).trigger('click');
        UI.resetScrollPosition();

        alternativeRoute[0].on('click',function (e) {
            UI.alert("Layer clicked!");
        });

在方法 renderCarOrWalkRoute 中,有 map.clearLayers(),但如果我发表评论,则在选择其他路线时不会清除路线。

有没有人遇到通过Leaflet以任何方式阻止“点击”?

谢谢!

1 个答案:

答案 0 :(得分:0)

Stocklet上没有map.clearLayers()方法,版本0.7.7或1.0.0-rc.3。

一旦你的脚本遇到无法执行的指令,一些(如果不是全部)你的事件监听器可能会中断。

如果您有自定义clearLayers()功能,那么如果您需要进一步支持,则应该在问题中分享代码。