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

标签 javascript jquery settimeout leaflet cleartimeout

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

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

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

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

关于javascript - 传单javascript - 如何清除标记上的setTimeout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29310798/

相关文章:

javascript - 这个 RxJS 史诗流有更好的解决方案吗?

javascript - 在用户选择或聚焦时选择输入框中的文本

javascript - 如何将 HTML 转换为有效的 XHTML?

javascript - jQuery/表格排序器 : maintain secondary alphabetical sort

javascript - 将变量中的所有字符串 "<"和 ">"替换为 "&lt;"和 "&gt;"

JavaScript setTimeout 在对象中

javascript - 我在 jquery ajax post 和 php 中遇到一些问题

javascript - iCheck 复选框无法在移动设备上使用

javascript - 使用 OData 模型在间隔时间内更改表的单元格

Javascript : setTimeout and interface freezing