Skip to content
Advertisement

set timeout to event listener function

I have an event listener

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

I would like to have a timeout for this event listener. So let’s say that if it doesn’t receive any event called ‘evt’ in 3 seconds I would like to have a notification that it timed out.

I tried with the setTimeout function but so far I don’t manage to pass an internal variable of the addEventListener callback function (fooFn) to the setTimeout one.

Any ideas on how I could make it?

Advertisement

Answer

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

maybe this will work, just place the “internal variable” in the outer scope

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement