Changeset 1178


Ignore:
Timestamp:
12/05/07 08:44:01 (6 years ago)
Author:
martinkou
Message:

Fixed #1609 : Made it possible to use RegisterDoubleClick() with any tag and with multiple event handlers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • FCKeditor/trunk/editor/_source/internals/fck.js

    r1138 r1178  
    271271        OnDoubleClick : function( element ) 
    272272        { 
    273                 var oHandler = FCK.RegisteredDoubleClickHandlers[ element.tagName ] ; 
    274                 if ( oHandler ) 
    275                         oHandler( element ) ; 
     273                var oCalls = FCK.RegisteredDoubleClickHandlers[ element.tagName.toUpperCase() ] ; 
     274 
     275                if ( oCalls ) 
     276                { 
     277                        for ( var i = 0 ; i < oCalls.length ; i++ ) 
     278                                oCalls[ i ]( element ) ; 
     279                } 
     280 
     281                // Generic handler for any element 
     282                oCalls = FCK.RegisteredDoubleClickHandlers[ '*' ] ; 
     283 
     284                if ( oCalls ) 
     285                { 
     286                        for ( var i = 0 ; i < oCalls.length ; i++ ) 
     287                                oCalls[ i ]( element ) ; 
     288                } 
     289 
    276290        }, 
    277291 
     
    279293        RegisterDoubleClickHandler : function( handlerFunction, tag ) 
    280294        { 
    281                 FCK.RegisteredDoubleClickHandlers[ tag.toUpperCase() ] = handlerFunction ; 
     295                var nodeName = tag || '*' ; 
     296                nodeName = nodeName.toUpperCase() ; 
     297 
     298                var aTargets ; 
     299 
     300                if ( !( aTargets = FCK.RegisteredDoubleClickHandlers[ nodeName ] ) ) 
     301                        FCK.RegisteredDoubleClickHandlers[ nodeName ] = [ handlerFunction ] ; 
     302                else 
     303                { 
     304                        // Check that the event handler isn't already registered with the same listener 
     305                        // It doesn't detect function pointers belonging to an object (at least in Gecko) 
     306                        if ( aTargets.IndexOf( handlerFunction ) == -1 ) 
     307                                aTargets.push( handlerFunction ) ; 
     308                } 
     309         
    282310        }, 
    283311 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy