Вам необходимо сохранить все прослушиватели событий в карте событий.
EventMap = {
listeners:[],
paused:false,
mapListener:function(eventDispacter, eventType, eventHandler) {
listeners.push({eD:eventDispacter, eT:eventType, eH:eventHandler});
if(!paused)
eventDispacter.addEventListener(eventType, eventHandler);
},
unMapListener:function(eventDispacter, eventType, eventHandler) {
for( var i=0; i<listeners.length; i++) {
var listener = listeners[i];
if(listener.eD == eventDispacter && listener.eT == eventType && listener.eH == eventHandler) {
listeners.splice(listeners.indexOf(listener), 1);
eventDispacter.removeEventListener(eventType, eventHandler);
}
}
},
pauseEvents:function() {
if(!paused) {}
for( var i=0; i<listeners.length; i++) {
var listener = listeners[i];
listener.eD.removeEventHandler(listener.eT, listener.eH);
}
}
},
unPauseEvents:function() {
if(paused) {}
for( var i=0; i<listeners.length; i++) {
var listener = listeners[i];
listener.eD.addEventHandler(listener.eT, listener.eH);
}
}
}
}
Добавить события с помощью
<script>
function handleClick( e ) {
alert('Button Clicked');
}
EventMap.mapListener(document.getElementById('myButton'), 'click', handleClick);
</script>
Приостановить события с помощью
EventMap.pauseEvents();