Removing an Event HandlerQuestion: How do I remove a JavaScript event handler from a page element? Answer: Depending on your method of adding event handlers, you can remove them in several different ways:
You can combine the latter two calls in a cross-browser function: function removeEventHandler(elem,eventType,handler) {
if (elem.removeEventListener)
elem.removeEventListener (eventType,handler,false);
if (elem.detachEvent)
elem.detachEvent ('on'+eventType,handler);
}
// Here is an example of calling removeEventHandler()
// to unregister event handlers for 'button1' and 'button2':
var b1 = document.getElementById('button1');
var b2 = document.getElementById('button2');
removeEventHandler(b1,'click',handlerFunction1);
removeEventHandler(b2,'click',handlerFunction2);
Try adding and removing event handlers for Button 1 and Button 2 here:
If you registered the same event handler function for the same element more than once,
you may also need to remove that handler multiple times. This is browser-dependent:
for example, IE8 would need multiple detachEvent calls,
while in Firefox 3 each handler function can be removed in just one
removeEventListener call (per element).
See also: |
Copyright © 1999-2011, JavaScripter.net.