1

我正在向我的地图添加这样的标记:

 map.addLayer(l), setTimeout(function() {
      map.removeLayer(l)
 }, 1e4),

在 10 秒后再次删除每个标记。现在我想实现这一点,当用户在这 10 秒内点击市场在地图上可见的标记时。到目前为止,我有:

l.on('click', function(e) {

console.log(e);
console.log(e.layer._leaflet_id);
console.log(l);

clearTimeout(e.layer._leaflet_id);

});

但它现在确实有效。知道如何实现这一目标吗?

4

1 回答 1

2

您需要通过使用相关 ID 调用 clearTimeout 来取消 setTimeout。

    var myVar;
    timeout_init();

    function timeout_init() {
        myVar = setTimeout(function(){
            $('.marker').hide();
            },5000);
    }

$( ".marker" ).click(function() {
    clearTimeout(myVar);
});

参见示例小提琴

于 2015-03-27T22:33:34.853 回答