From 2d6377fdc5969b9987176c65d9dd912daa0a1763 Mon Sep 17 00:00:00 2001 From: Ryan Schmidt Date: Wed, 26 Nov 2008 02:55:24 +0000 Subject: [PATCH] * Added complimentary function for addHandler() called removeHandler() for removing events --- RELEASE-NOTES | 1 + skins/common/wikibits.js | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 3addd8f649..f496598899 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -214,6 +214,7 @@ The following extensions are migrated into MediaWiki 1.14: * Dropped old Paser_OldPP class. Only new parser with preprocessor is used. * Moved password reset form from Special:Preferences to Special:ResetPass * Added Special:ChangePassword as a special page alias for Special:ResetPass +* Added complimentary function for addHandler() called removeHandler() for removing events === Bug fixes in 1.14 === diff --git a/skins/common/wikibits.js b/skins/common/wikibits.js index 5e7905f019..11709e156d 100644 --- a/skins/common/wikibits.js +++ b/skins/common/wikibits.js @@ -44,11 +44,7 @@ function addOnloadHook(hookFunct) { } function hookEvent(hookName, hookFunct) { - if (window.addEventListener) { - window.addEventListener(hookName, hookFunct, false); - } else if (window.attachEvent) { - window.attachEvent("on" + hookName, hookFunct); - } + addHandler(window, hookName, hookFunct); } function importScript(page) { @@ -945,6 +941,21 @@ function addHandler( element, attach, handler ) { function addClickHandler( element, handler ) { addHandler( element, 'click', handler ); } + +/** + * Removes an event handler from an element + * + * @param Element element Element to remove handler from + * @param String remove Event to remove + * @param callable handler Event handler callback to remove + */ +function removeHandler( element, remove, handler ) { + if( window.removeEventListener ) { + element.removeEventListener( remove, handler, false ); + } else if( window.detachEvent ) { + element.detachEvent( 'on' + remove, handler ); + } +} //note: all skins should call runOnloadHook() at the end of html output, // so the below should be redundant. It's there just in case. hookEvent("load", runOnloadHook); -- 2.20.1