WordPress.org

Make WordPress Core

Ticket #15307: admin-bar-hover-fixes.15307.diff

File admin-bar-hover-fixes.15307.diff, 1.3 KB (added by filosofo, 10 years ago)
  • wp-includes/js/admin-bar.dev.js

     
    88
    99        aB, hc = new RegExp('\\bhover\\b', 'g'), q = [],
    1010
     11        /**
     12         * Get the timeout ID of the given element
     13         */
    1114        getTOID = function(el) {
    1215                var i = q.length;
    1316                while( i-- )
     
    1720        },
    1821
    1922        addClass = function(t) {
     23                var ancestors = [],
     24                ancestorLength = 0,
     25                id,
     26                i = q.length,
     27                inA;
    2028                while ( t && t != aB && t != d ) {
    2129                        if( 'LI' == t.nodeName.toUpperCase() ) {
    22                                 var id = getTOID(t);   
     30                                ancestors[ ancestors.length ] = t;
     31                                id = getTOID(t);       
    2332                                if ( id )
    2433                                        clearTimeout( id );
    2534                                t.className = t.className ? ( t.className.replace(hc, '') + ' hover' ) : 'hover';
    2635                        }
    2736                        t = t.parentNode;
    2837                }
     38               
     39                /* remove the hover class for any objects not in the immediate element's ancestry */
     40                while ( i-- ) {
     41                        inA = false;   
     42                        ancestorLength = ancestors.length;
     43                        while( ancestorLength-- ) {
     44                                if ( ancestors[ ancestorLength ] == q[i][1] )
     45                                        inA = true;     
     46                        }
     47
     48                        if ( ! inA )
     49                                q[i][1].className = q[i][1].className ? q[i][1].className.replace(hc, '') : '';
     50                }
    2951        },
    3052
    3153        removeClass = function(t) {