javascript - 将超时设置为事件监听器功能

标签 javascript settimeout event-listener

我有一个事件监听器

elem.addEventListener('evt', fooFn(){alert("OK")});

我想为这个事件监听器设置一个超时时间。因此,假设它在 3 秒内没有收到任何名为“evt”的事件,我希望收到它超时的通知。

我尝试使用 setTimeout 函数,但到目前为止我还没有设法将 addEventListener 回调函数 ( fooFn ) 的内部变量传递给 setTimeout 一个。

关于我如何做到的任何想法?

最佳答案

var evtFired = false;
setTimeout(function() {
    if (!evtFired) {
      // show notification that evt has not been fired
    }
}, 3000);

function fooFn() {
    evtFired = true;
    alert('OK');
}

elem.addEventListener('evt', fooFn);

也许这会起作用,只需将“内部变量”放在外部作用域中

关于javascript - 将超时设置为事件监听器功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43583894/

相关文章:

javascript - Sails.js,无需路由配置和controller.method即可执行的API

javascript - 如何在事件 onChange 上设置超时

JavaScript 错误 - AddEventListener

javascript - 如何在满足特定条件时删除 Vue 2 中的 eventListener (window.removeEventListener)

JavaScript - 事件 relatedTarget 不适用于 onClick

javascript - ES6 类扩展数组 : workaround for ES5 Babel transpile

javascript - 如何在对象中创建 javascript 对象?

c# - javascript pageLoad 函数未在 asp.net Site.Master 中触发

jquery - setTimeout()和设置参数

node.js - setTimeout - JavaScript 堆内存不足