传单 javascript - 如何清除标记上的 setTimeout?

leaflet javascript - how to clearTimeout a setTimeout on a marker?

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

 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);

});

但它现在确实有效。知道如何实现吗?

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

    var myVar;
    timeout_init();

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

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

See example Fiddle