function handleOnce(funct) { var flag = false; return function(e) { if (flag) return; flag = true; setTimeout(function() { flag = false; }, 0); funct(e); }; } // Usage is done as: win.addEventListener('foo', handleOnce( function(e){ alert('I dont queue'); } ));