* Added complimentary function for addHandler() called removeHandler() for removing...
authorRyan Schmidt <skizzerz@users.mediawiki.org>
Wed, 26 Nov 2008 02:55:24 +0000 (02:55 +0000)
committerRyan Schmidt <skizzerz@users.mediawiki.org>
Wed, 26 Nov 2008 02:55:24 +0000 (02:55 +0000)
RELEASE-NOTES
skins/common/wikibits.js

index 3addd8f..f496598 100644 (file)
@@ -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 ===
 
index 5e7905f..11709e1 100644 (file)
@@ -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);