WordPress.org

Make WordPress Core

Changeset 18488


Ignore:
Timestamp:
07/29/11 22:57:30 (6 years ago)
Author:
azaozz
Message:

Admin bar: use jQuery if loaded to improve UX, fixes #18299

Location:
trunk/wp-includes
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/class-wp-admin-bar.php

    r18284 r18488  
    9090    function render() { 
    9191        ?> 
    92         <div id="wpadminbar"> 
     92        <div id="wpadminbar" class="nojq"> 
    9393            <div class="quicklinks"> 
    9494                <ul> 
  • trunk/wp-includes/css/admin-bar.css

    r18097 r18488  
    1 #wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-transform:none;letter-spacing:normal;line-height:1;font:normal 13px/28px Arial,Helvetica,sans-serif;color:#ddd;text-shadow:#555 0 -1px 0;}#wpadminbar :before,#wpadminbar :after{content:normal;}#wpadminbar a,#wpadminbar a:hover,#wpadminbar a img,#wpadminbar a img:hover{outline:none;border:none;text-decoration:none;background:none;}#wpadminbar{direction:ltr;background-color:#777;background-image:-moz-linear-gradient(bottom,#666,#7f7f7f);background-image:-webkit-gradient(linear,left bottom,left top,from(#666),to(#7f7f7f));color:#ddd;font:normal 12px/28px Arial,Helvetica,sans-serif;height:28px;position:fixed;top:0;left:0;width:100%;z-index:99999;min-width:960px;}#wpadminbar ul,#wpadminbar ul li{background:none;list-style:none;margin:0;padding:0;position:relative;z-index:99999;}#wpadminbar .quicklinks ul{text-align:left;}#wpadminbar .quicklinks ul li{float:left;}#wpadminbar .quicklinks>ul>li>a{border-right:1px solid #686868;border-left:1px solid #808080;}#wpadminbar .quicklinks>ul>li:last-child>a{border-right:none;}#wpadminbar .quicklinks>ul>li:hover>a{border-left-color:#707070;}#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:28px;display:block;padding:0 .85em;margin:0;}#wpadminbar .quicklinks a>span{line-height:28px;}#wpadminbar .quicklinks .menupop ul,#wpadminbar .shortlink-input{-moz-box-shadow:0 4px 8px rgba(0,0,0,0.1);-webkit-box-shadow:0 4px 8px rgba(0,0,0,0.1);box-shadow:0 4px 8px rgba(0,0,0,0.1);background:#fff;background:rgba(255,255,255,0.97);display:none;position:absolute;border:1px solid #dfdfdf;border-top:none;float:none;}#wpadminbar .selected .shortlink-input{display:block;}#wpadminbar .quicklinks .menupop ul li{float:none;}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:bold;}#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a span,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .shortlink-input{color:#555;text-shadow:none;white-space:nowrap;min-width:140px;}#wpadminbar .shortlink-input{width:200px;}#wpadminbar .quicklinks .menupop ul li:hover>a,#wpadminbar .quicklinks .menupop ul li:hover>a span,#wpadminbar .quicklinks .menupop ul li:hover>a strong{color:#fff;text-shadow:#666 0 -1px 0;}#wpadminbar .quicklinks li:hover>ul,#wpadminbar .quicklinks li.hover>ul{display:block;}#wpadminbar .quicklinks .menupop li:hover>ul,#wpadminbar .quicklinks .menupop li.hover>ul{margin-left:100%;margin-top:-28px;}#wpadminbar .quicklinks li:hover,#wpadminbar .quicklinks .selected{background:#555;background:-moz-linear-gradient(bottom,#555,#3e3e3e);background:-webkit-gradient(linear,left bottom,left top,from(#555),to(#3e3e3e));}#wpadminbar .quicklinks .menupop li:hover{background:#888;background:-moz-linear-gradient(bottom,#888,#9d9d9d);background:-webkit-gradient(linear,left bottom,left top,from(#888),to(#9d9d9d));}#wpadminbar .quicklinks .menupop a>span{display:inline;background:url(../images/admin-bar-sprite.png?d=11122010) right -58px no-repeat;padding-right:.8em;}#wpadminbar .quicklinks .menupop ul li a>span{display:block;background:url(../images/admin-bar-sprite.png?d=11122010) right -29px no-repeat;padding-right:1.5em;}#wpadminbar .quicklinks a span#ab-awaiting-mod,#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#333;text-shadow:none;display:inline;padding:2px 5px;font-size:10px;font-weight:bold;-moz-border-radius:10px;-khtml-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;}#wpadminbar .quicklinks a:hover span#ab-awaiting-mod,#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000;}#wpadminbar .quicklinks li#wp-admin-bar-my-account>a{border-left:none;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar>a{border-left:none;background:url(../images/admin-bar-sprite.png?d=11122010) top left no-repeat;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar>a img{width:16px;height:16px;display:inline;border:1px solid #999;vertical-align:middle;margin:-2px 23px 0 -5px;padding:0;background:#eee;float:none;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar ul{left:30px;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar ul ul{left:0;}#wpadminbar .quicklinks .menupop li a img.blavatar{vertical-align:middle;margin:0 8px 0 0;padding:0;}#wpadminbar #adminbarsearch{float:right;height:18px;padding:3px;margin:0;}#wpadminbar #adminbarsearch .adminbar-input{width:140px;height:auto;float:left;font:12px Arial,Helvetica,sans-serif;color:#555;text-shadow:0 1px 0 #fff;border:1px solid #626262;padding:2px 3px;margin:0 3px 0 0;background:#ddd;-moz-box-shadow:inset 2px 2px 1px #cdcdcd;-webkit-box-shadow:inset 2px 2px 1px #cdcdcd;box-shadow:inset 2px 2px 1px #cdcdcd;-webkit-border-radius:0;-khtml-border-radius:0;-moz-border-radius:0;border-radius:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;outline:none;}#wpadminbar #adminbarsearch .adminbar-button{font:bold 12px Arial,Helvetica,sans-serif;color:#444;text-shadow:0 1px 0 #eee;cursor:pointer;float:left;background:#aaa;background:-moz-linear-gradient(bottom,#aaa,#cecece);background:-webkit-gradient(linear,left bottom,left top,from(#aaa),to(#cecece));-webkit-border-radius:10px;-khtml-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:1px solid #626262;padding:2px 13px;margin:0;width:auto;height:auto;}#wpadminbar #adminbarsearch .adminbar-button:active{background:#a0a0a0;background:-moz-linear-gradient(bottom,#a0a0a0,#c1c1c1);background:-webkit-gradient(linear,left bottom,left top,from(#a0a0a0),to(#c1c1c1));-moz-box-shadow:inset 1px 1px 1px #9b9b9b;-webkit-box-shadow:inset 1px 1px 1px #9b9b9b;box-shadow:inset 1px 1px 1px #9b9b9b;}#wpadminbar #adminbarsearch .adminbar-button:hover{color:#000;}#wpadminbar #adminbarsearch .adminbar-button::-moz-focus-inner{border:none;}* html #wpadminbar{overflow:hidden;position:absolute;}* html #wpadminbar .quicklinks ul li a{float:left;}* html #wpadminbar .menupop a span{background-image:none;} 
     1#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-transform:none;letter-spacing:normal;line-height:1;font:normal 13px/28px Arial,Helvetica,sans-serif;color:#ddd;text-shadow:#555 0 -1px 0;}#wpadminbar :before,#wpadminbar :after{content:normal;}#wpadminbar a,#wpadminbar a:hover,#wpadminbar a img,#wpadminbar a img:hover{outline:none;border:none;text-decoration:none;background:none;}#wpadminbar{direction:ltr;background-color:#777;background-image:-moz-linear-gradient(bottom,#666,#7f7f7f);background-image:-webkit-gradient(linear,left bottom,left top,from(#666),to(#7f7f7f));color:#ddd;font:normal 12px/28px Arial,Helvetica,sans-serif;height:28px;position:fixed;top:0;left:0;width:100%;z-index:99999;min-width:960px;}#wpadminbar ul,#wpadminbar ul li{background:none;list-style:none;margin:0;padding:0;position:relative;z-index:99999;}#wpadminbar .quicklinks ul{text-align:left;}#wpadminbar .quicklinks ul li{float:left;}#wpadminbar .quicklinks>ul>li>a{border-right:1px solid #686868;border-left:1px solid #808080;}#wpadminbar .quicklinks>ul>li:last-child>a{border-right:none;}#wpadminbar .quicklinks>ul>li:hover>a{border-left-color:#707070;}#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:28px;display:block;padding:0 .85em;margin:0;}#wpadminbar .quicklinks a>span{line-height:28px;}#wpadminbar .quicklinks .menupop ul,#wpadminbar .shortlink-input{-moz-box-shadow:0 4px 8px rgba(0,0,0,0.1);-webkit-box-shadow:0 4px 8px rgba(0,0,0,0.1);box-shadow:0 4px 8px rgba(0,0,0,0.1);background:#fff;background:rgba(255,255,255,0.97);display:none;position:absolute;border:1px solid #dfdfdf;border-top:none;float:none;}#wpadminbar .selected .shortlink-input{display:block;}#wpadminbar .quicklinks .menupop ul li{float:none;}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:bold;}#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a span,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .shortlink-input{color:#555;text-shadow:none;white-space:nowrap;min-width:140px;}#wpadminbar .shortlink-input{width:200px;}#wpadminbar .quicklinks .menupop ul li:hover>a,#wpadminbar .quicklinks .menupop ul li:hover>a span,#wpadminbar .quicklinks .menupop ul li:hover>a strong{color:#fff;text-shadow:#666 0 -1px 0;}#wpadminbar.nojq .quicklinks li:hover>ul,#wpadminbar .quicklinks li.hover>ul{display:block;}#wpadminbar .quicklinks .menupop li:hover>ul,#wpadminbar .quicklinks .menupop li.hover>ul{margin-left:100%;margin-top:-28px;}#wpadminbar .quicklinks li:hover,#wpadminbar .quicklinks .selected{background:#555;background:-moz-linear-gradient(bottom,#555,#3e3e3e);background:-webkit-gradient(linear,left bottom,left top,from(#555),to(#3e3e3e));}#wpadminbar .quicklinks .menupop li:hover{background:#888;background:-moz-linear-gradient(bottom,#888,#9d9d9d);background:-webkit-gradient(linear,left bottom,left top,from(#888),to(#9d9d9d));}#wpadminbar .quicklinks .menupop a>span{display:inline;background:url(../images/admin-bar-sprite.png?d=11122010) right -58px no-repeat;padding-right:.8em;}#wpadminbar .quicklinks .menupop ul li a>span{display:block;background:url(../images/admin-bar-sprite.png?d=11122010) right -29px no-repeat;padding-right:1.5em;}#wpadminbar .quicklinks a span#ab-awaiting-mod,#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#333;text-shadow:none;display:inline;padding:2px 5px;font-size:10px;font-weight:bold;-moz-border-radius:10px;-khtml-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;}#wpadminbar .quicklinks a:hover span#ab-awaiting-mod,#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000;}#wpadminbar .quicklinks li#wp-admin-bar-my-account>a{border-left:none;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar>a{border-left:none;background:url(../images/admin-bar-sprite.png?d=11122010) top left no-repeat;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar>a img{width:16px;height:16px;display:inline;border:1px solid #999;vertical-align:middle;margin:-2px 23px 0 -5px;padding:0;background:#eee;float:none;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar ul{left:30px;}#wpadminbar .quicklinks li#wp-admin-bar-my-account-with-avatar ul ul{left:0;}#wpadminbar .quicklinks .menupop li a img.blavatar{vertical-align:middle;margin:0 8px 0 0;padding:0;}#wpadminbar #adminbarsearch{float:right;height:18px;padding:3px;margin:0;}#wpadminbar #adminbarsearch .adminbar-input{width:140px;height:auto;float:left;font:12px Arial,Helvetica,sans-serif;color:#555;text-shadow:0 1px 0 #fff;border:1px solid #626262;padding:2px 3px;margin:0 3px 0 0;background:#ddd;-moz-box-shadow:inset 2px 2px 1px #cdcdcd;-webkit-box-shadow:inset 2px 2px 1px #cdcdcd;box-shadow:inset 2px 2px 1px #cdcdcd;-webkit-border-radius:0;-khtml-border-radius:0;-moz-border-radius:0;border-radius:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;outline:none;}#wpadminbar #adminbarsearch .adminbar-button{font:bold 12px Arial,Helvetica,sans-serif;color:#444;text-shadow:0 1px 0 #eee;cursor:pointer;float:left;background:#aaa;background:-moz-linear-gradient(bottom,#aaa,#cecece);background:-webkit-gradient(linear,left bottom,left top,from(#aaa),to(#cecece));-webkit-border-radius:10px;-khtml-border-radius:10px;-moz-border-radius:10px;border-radius:10px;border:1px solid #626262;padding:2px 13px;margin:0;width:auto;height:auto;}#wpadminbar #adminbarsearch .adminbar-button:active{background:#a0a0a0;background:-moz-linear-gradient(bottom,#a0a0a0,#c1c1c1);background:-webkit-gradient(linear,left bottom,left top,from(#a0a0a0),to(#c1c1c1));-moz-box-shadow:inset 1px 1px 1px #9b9b9b;-webkit-box-shadow:inset 1px 1px 1px #9b9b9b;box-shadow:inset 1px 1px 1px #9b9b9b;}#wpadminbar #adminbarsearch .adminbar-button:hover{color:#000;}#wpadminbar #adminbarsearch .adminbar-button::-moz-focus-inner{border:none;}* html #wpadminbar{overflow:hidden;position:absolute;}* html #wpadminbar .quicklinks ul li a{float:left;}* html #wpadminbar .menupop a span{background-image:none;} 
  • trunk/wp-includes/css/admin-bar.dev.css

    r18097 r18488  
    134134} 
    135135 
    136 #wpadminbar .quicklinks li:hover > ul, 
     136#wpadminbar.nojq .quicklinks li:hover > ul, 
    137137#wpadminbar .quicklinks li.hover > ul { 
    138138    display: block; 
  • trunk/wp-includes/js/admin-bar.dev.js

    r17435 r18488  
    1 (function(d, w) { 
    2     var addEvent = function( obj, type, fn ) { 
    3         if (obj.addEventListener) 
    4             obj.addEventListener(type, fn, false); 
    5         else if (obj.attachEvent) 
    6             obj.attachEvent('on' + type, function() { return fn.call(obj, window.event);}); 
    7     }, 
     1// use jQuery and hoverIntent if loaded 
     2if ( typeof(jQuery) != 'undefined' ) { 
     3    if ( typeof(jQuery.fn.hoverIntent) == 'undefined' ) 
     4        (function(a){a.fn.hoverIntent=function(l,j){var m={sensitivity:7,interval:100,timeout:0};m=a.extend(m,j?{over:l,out:j}:l);var o,n,h,d;var e=function(f){o=f.pageX;n=f.pageY};var c=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);if((Math.abs(h-o)+Math.abs(d-n))<m.sensitivity){a(f).unbind("mousemove",e);f.hoverIntent_s=1;return m.over.apply(f,[g])}else{h=o;d=n;f.hoverIntent_t=setTimeout(function(){c(g,f)},m.interval)}};var i=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);f.hoverIntent_s=0;return m.out.apply(f,[g])};var b=function(q){var f=this;var g=(q.type=="mouseover"?q.fromElement:q.toElement)||q.relatedTarget;while(g&&g!=this){try{g=g.parentNode}catch(q){g=this}}if(g==this){if(a.browser.mozilla){if(q.type=="mouseout"){f.mtout=setTimeout(function(){k(q,f)},30)}else{if(f.mtout){f.mtout=clearTimeout(f.mtout)}}}return}else{if(f.mtout){f.mtout=clearTimeout(f.mtout)}k(q,f)}};var k=function(p,f){var g=jQuery.extend({},p);if(f.hoverIntent_t){f.hoverIntent_t=clearTimeout(f.hoverIntent_t)}if(p.type=="mouseover"){h=g.pageX;d=g.pageY;a(f).bind("mousemove",e);if(f.hoverIntent_s!=1){f.hoverIntent_t=setTimeout(function(){c(g,f)},m.interval)}}else{a(f).unbind("mousemove",e);if(f.hoverIntent_s==1){f.hoverIntent_t=setTimeout(function(){i(g,f)},m.timeout)}}};return this.mouseover(b).mouseout(b)}})(jQuery); 
    85 
    9     aB, hc = new RegExp('\\bhover\\b', 'g'), q = [], 
    10     rselected = new RegExp('\\bselected\\b', 'g'), 
    11  
    12     /** 
    13      * Get the timeout ID of the given element 
    14      */ 
    15     getTOID = function(el) { 
    16         var i = q.length; 
    17         while( i-- ) 
    18             if ( q[i] && el == q[i][1] ) 
    19                 return q[i][0]; 
    20         return false; 
    21     }, 
    22  
    23     addHoverClass = function(t) { 
    24         var i, id, inA, hovering, ul, li, 
    25             ancestors = [], 
    26             ancestorLength = 0; 
    27  
    28         while ( t && t != aB && t != d ) { 
    29             if( 'LI' == t.nodeName.toUpperCase() ) { 
    30                 ancestors[ ancestors.length ] = t; 
    31                 id = getTOID(t); 
    32                 if ( id ) 
    33                     clearTimeout( id ); 
    34                 t.className = t.className ? ( t.className.replace(hc, '') + ' hover' ) : 'hover'; 
    35                 hovering = t; 
     6    jQuery(document).ready(function($){ 
     7        $('#wpadminbar').removeClass('nojq').find('li.menupop').hoverIntent({ 
     8            over: function(e){ 
     9                $(this).addClass('hover'); 
     10            }, 
     11            out: function(e){ 
     12                $(this).removeClass('hover'); 
     13            }, 
     14            timeout: 200, 
     15            sensitivity: 7, 
     16            interval: 120 
     17        }); 
     18    }); 
     19} else { 
     20    (function(d, w) { 
     21        var addEvent = function( obj, type, fn ) { 
     22            if (obj.addEventListener) 
     23                obj.addEventListener(type, fn, false); 
     24            else if (obj.attachEvent) 
     25                obj.attachEvent('on' + type, function() { return fn.call(obj, window.event);}); 
     26        }, 
     27     
     28        aB, hc = new RegExp('\\bhover\\b', 'g'), q = [], 
     29        rselected = new RegExp('\\bselected\\b', 'g'), 
     30     
     31        /** 
     32         * Get the timeout ID of the given element 
     33         */ 
     34        getTOID = function(el) { 
     35            var i = q.length; 
     36            while( i-- ) 
     37                if ( q[i] && el == q[i][1] ) 
     38                    return q[i][0]; 
     39            return false; 
     40        }, 
     41     
     42        addHoverClass = function(t) { 
     43            var i, id, inA, hovering, ul, li, 
     44                ancestors = [], 
     45                ancestorLength = 0; 
     46     
     47            while ( t && t != aB && t != d ) { 
     48                if( 'LI' == t.nodeName.toUpperCase() ) { 
     49                    ancestors[ ancestors.length ] = t; 
     50                    id = getTOID(t); 
     51                    if ( id ) 
     52                        clearTimeout( id ); 
     53                    t.className = t.className ? ( t.className.replace(hc, '') + ' hover' ) : 'hover'; 
     54                    hovering = t; 
     55                } 
     56                t = t.parentNode; 
    3657            } 
    37             t = t.parentNode; 
    38         } 
    39  
    40         // Remove any selected classes. 
    41         if ( hovering && hovering.parentNode ) { 
    42             ul = hovering.parentNode; 
    43             if ( ul && 'UL' == ul.nodeName.toUpperCase() ) { 
    44                 i = ul.childNodes.length; 
    45                 while ( i-- ) { 
    46                     li = ul.childNodes[i]; 
    47                     if ( li != hovering ) 
    48                         li.className = li.className ? li.className.replace( rselected, '' ) : ''; 
     58     
     59            // Remove any selected classes. 
     60            if ( hovering && hovering.parentNode ) { 
     61                ul = hovering.parentNode; 
     62                if ( ul && 'UL' == ul.nodeName.toUpperCase() ) { 
     63                    i = ul.childNodes.length; 
     64                    while ( i-- ) { 
     65                        li = ul.childNodes[i]; 
     66                        if ( li != hovering ) 
     67                            li.className = li.className ? li.className.replace( rselected, '' ) : ''; 
     68                    } 
    4969                } 
    5070            } 
    51         } 
     71     
     72            /* remove the hover class for any objects not in the immediate element's ancestry */ 
     73            i = q.length; 
     74            while ( i-- ) { 
     75                inA = false; 
     76                ancestorLength = ancestors.length; 
     77                while( ancestorLength-- ) { 
     78                    if ( ancestors[ ancestorLength ] == q[i][1] ) 
     79                        inA = true; 
     80                } 
     81     
     82                if ( ! inA ) 
     83                    q[i][1].className = q[i][1].className ? q[i][1].className.replace(hc, '') : ''; 
     84            } 
     85        }, 
     86     
     87        removeHoverClass = function(t) { 
     88            while ( t && t != aB && t != d ) { 
     89                if( 'LI' == t.nodeName.toUpperCase() ) { 
     90                    (function(t) { 
     91                        var to = setTimeout(function() { 
     92                            t.className = t.className ? t.className.replace(hc, '') : ''; 
     93                        }, 500); 
     94                        q[q.length] = [to, t]; 
     95                    })(t); 
     96                } 
     97                t = t.parentNode; 
     98            } 
     99        }, 
     100     
     101        clickShortlink = function(e) { 
     102            var i, l, node, 
     103                t = e.target || e.srcElement; 
     104     
     105            // Make t the shortlink menu item, or return. 
     106            while ( true ) { 
     107                // Check if we've gone past the shortlink node, 
     108                // or if the user is clicking on the input. 
     109                if ( ! t || t == d || t == aB ) 
     110                    return; 
     111                // Check if we've found the shortlink node. 
     112                if ( t.id && t.id == 'wp-admin-bar-get-shortlink' ) 
     113                    break; 
     114                t = t.parentNode; 
     115            } 
     116     
     117            // IE doesn't support preventDefault, and does support returnValue 
     118            if ( e.preventDefault ) 
     119                e.preventDefault(); 
     120            e.returnValue = false; 
     121     
     122            if ( -1 == t.className.indexOf('selected') ) 
     123                t.className += ' selected'; 
     124     
     125            for ( i = 0, l = t.childNodes.length; i < l; i++ ) { 
     126                node = t.childNodes[i]; 
     127                if ( node.className && -1 != node.className.indexOf('shortlink-input') ) { 
     128                    node.focus(); 
     129                    node.select(); 
     130                    node.onblur = function() { 
     131                        t.className = t.className ? t.className.replace( rselected, '' ) : ''; 
     132                    }; 
     133                    break; 
     134                } 
     135            } 
     136            return false; 
     137        }; 
     138     
     139        addEvent(w, 'load', function() { 
     140            aB = d.getElementById('wpadminbar'); 
     141     
     142            if ( d.body && aB ) { 
     143                d.body.appendChild( aB ); 
     144     
     145                addEvent(aB, 'mouseover', function(e) { 
     146                    addHoverClass( e.target || e.srcElement ); 
     147                }); 
     148     
     149                addEvent(aB, 'mouseout', function(e) { 
     150                    removeHoverClass( e.target || e.srcElement ); 
     151                }); 
     152     
     153                addEvent(aB, 'click', clickShortlink ); 
     154            } 
     155     
     156            if ( w.location.hash ) 
     157                w.scrollBy(0,-32); 
     158        }); 
     159    })(document, window); 
    52160 
    53         /* remove the hover class for any objects not in the immediate element's ancestry */ 
    54         i = q.length; 
    55         while ( i-- ) { 
    56             inA = false; 
    57             ancestorLength = ancestors.length; 
    58             while( ancestorLength-- ) { 
    59                 if ( ancestors[ ancestorLength ] == q[i][1] ) 
    60                     inA = true; 
    61             } 
     161} 
    62162 
    63             if ( ! inA ) 
    64                 q[i][1].className = q[i][1].className ? q[i][1].className.replace(hc, '') : ''; 
    65         } 
    66     }, 
    67  
    68     removeHoverClass = function(t) { 
    69         while ( t && t != aB && t != d ) { 
    70             if( 'LI' == t.nodeName.toUpperCase() ) { 
    71                 (function(t) { 
    72                     var to = setTimeout(function() { 
    73                         t.className = t.className ? t.className.replace(hc, '') : ''; 
    74                     }, 500); 
    75                     q[q.length] = [to, t]; 
    76                 })(t); 
    77             } 
    78             t = t.parentNode; 
    79         } 
    80     }, 
    81  
    82     clickShortlink = function(e) { 
    83         var i, l, node, 
    84             t = e.target || e.srcElement; 
    85  
    86         // Make t the shortlink menu item, or return. 
    87         while ( true ) { 
    88             // Check if we've gone past the shortlink node, 
    89             // or if the user is clicking on the input. 
    90             if ( ! t || t == d || t == aB ) 
    91                 return; 
    92             // Check if we've found the shortlink node. 
    93             if ( t.id && t.id == 'wp-admin-bar-get-shortlink' ) 
    94                 break; 
    95             t = t.parentNode; 
    96         } 
    97  
    98         // IE doesn't support preventDefault, and does support returnValue 
    99         if ( e.preventDefault ) 
    100             e.preventDefault(); 
    101         e.returnValue = false; 
    102  
    103         if ( -1 == t.className.indexOf('selected') ) 
    104             t.className += ' selected'; 
    105  
    106         for ( i = 0, l = t.childNodes.length; i < l; i++ ) { 
    107             node = t.childNodes[i]; 
    108             if ( node.className && -1 != node.className.indexOf('shortlink-input') ) { 
    109                 node.focus(); 
    110                 node.select(); 
    111                 node.onblur = function() { 
    112                     t.className = t.className ? t.className.replace( rselected, '' ) : ''; 
    113                 }; 
    114                 break; 
    115             } 
    116         } 
    117         return false; 
    118     }; 
    119  
    120     addEvent(w, 'load', function() { 
    121         aB = d.getElementById('wpadminbar'); 
    122  
    123         if ( d.body && aB ) { 
    124             d.body.appendChild( aB ); 
    125  
    126             addEvent(aB, 'mouseover', function(e) { 
    127                 addHoverClass( e.target || e.srcElement ); 
    128             }); 
    129  
    130             addEvent(aB, 'mouseout', function(e) { 
    131                 removeHoverClass( e.target || e.srcElement ); 
    132             }); 
    133  
    134             addEvent(aB, 'click', clickShortlink ); 
    135         } 
    136  
    137         if ( w.location.hash ) 
    138             w.scrollBy(0,-32); 
    139     }); 
    140 })(document, window); 
  • trunk/wp-includes/js/admin-bar.js

    r17279 r18488  
    1 (function(i,k){var c=function(n,m,d){if(n.addEventListener){n.addEventListener(m,d,false)}else{if(n.attachEvent){n.attachEvent("on"+m,function(){return d.call(n,window.event)})}}},e,f=new RegExp("\\bhover\\b","g"),a=[],j=new RegExp("\\bselected\\b","g"),g=function(m){var d=a.length;while(d--){if(a[d]&&m==a[d][1]){return a[d][0]}}return false},h=function(s){var n,d,q,m,p,r,u=[],o=0;while(s&&s!=e&&s!=i){if("LI"==s.nodeName.toUpperCase()){u[u.length]=s;d=g(s);if(d){clearTimeout(d)}s.className=s.className?(s.className.replace(f,"")+" hover"):"hover";m=s}s=s.parentNode}if(m&&m.parentNode){p=m.parentNode;if(p&&"UL"==p.nodeName.toUpperCase()){n=p.childNodes.length;while(n--){r=p.childNodes[n];if(r!=m){r.className=r.className?r.className.replace(j,""):""}}}}n=a.length;while(n--){q=false;o=u.length;while(o--){if(u[o]==a[n][1]){q=true}}if(!q){a[n][1].className=a[n][1].className?a[n][1].className.replace(f,""):""}}},l=function(d){while(d&&d!=e&&d!=i){if("LI"==d.nodeName.toUpperCase()){(function(m){var n=setTimeout(function(){m.className=m.className?m.className.replace(f,""):""},500);a[a.length]=[n,m]})(d)}d=d.parentNode}},b=function(p){var n,d,o,m=p.target||p.srcElement;while(true){if(!m||m==i||m==e){return}if(m.id&&m.id=="wp-admin-bar-get-shortlink"){break}m=m.parentNode}if(p.preventDefault){p.preventDefault()}p.returnValue=false;if(-1==m.className.indexOf("selected")){m.className+=" selected"}for(n=0,d=m.childNodes.length;n<d;n++){o=m.childNodes[n];if(o.className&&-1!=o.className.indexOf("shortlink-input")){o.focus();o.select();o.onblur=function(){m.className=m.className?m.className.replace(j,""):""};break}}return false};c(k,"load",function(){e=i.getElementById("wpadminbar");if(i.body&&e){i.body.appendChild(e);c(e,"mouseover",function(d){h(d.target||d.srcElement)});c(e,"mouseout",function(d){l(d.target||d.srcElement)});c(e,"click",b)}if(k.location.hash){k.scrollBy(0,-32)}})})(document,window); 
     1if(typeof(jQuery)!="undefined"){if(typeof(jQuery.fn.hoverIntent)=="undefined"){(function(b){b.fn.hoverIntent=function(p,r){var g={sensitivity:7,interval:100,timeout:0};g=b.extend(g,r?{over:p,out:r}:p);var a,f,t,v;var u=function(c){a=c.pageX;f=c.pageY};var w=function(c,d){d.hoverIntent_t=clearTimeout(d.hoverIntent_t);if((Math.abs(t-a)+Math.abs(v-f))<g.sensitivity){b(d).unbind("mousemove",u);d.hoverIntent_s=1;return g.over.apply(d,[c])}else{t=a;v=f;d.hoverIntent_t=setTimeout(function(){w(c,d)},g.interval)}};var s=function(c,d){d.hoverIntent_t=clearTimeout(d.hoverIntent_t);d.hoverIntent_s=0;return g.out.apply(d,[c])};var x=function(e){var d=this;var c=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(c&&c!=this){try{c=c.parentNode}catch(e){c=this}}if(c==this){if(b.browser.mozilla){if(e.type=="mouseout"){d.mtout=setTimeout(function(){q(e,d)},30)}else{if(d.mtout){d.mtout=clearTimeout(d.mtout)}}}return}else{if(d.mtout){d.mtout=clearTimeout(d.mtout)}q(e,d)}};var q=function(e,d){var c=jQuery.extend({},e);if(d.hoverIntent_t){d.hoverIntent_t=clearTimeout(d.hoverIntent_t)}if(e.type=="mouseover"){t=c.pageX;v=c.pageY;b(d).bind("mousemove",u);if(d.hoverIntent_s!=1){d.hoverIntent_t=setTimeout(function(){w(c,d)},g.interval)}}else{b(d).unbind("mousemove",u);if(d.hoverIntent_s==1){d.hoverIntent_t=setTimeout(function(){s(c,d)},g.timeout)}}};return this.mouseover(x).mouseout(x)}})(jQuery)}jQuery(document).ready(function(a){a("#wpadminbar").removeClass("nojq").find("li.menupop").hoverIntent({over:function(b){a(this).addClass("hover")},out:function(b){a(this).removeClass("hover")},timeout:200,sensitivity:7,interval:120})})}else{(function(i,k){var c=function(n,m,d){if(n.addEventListener){n.addEventListener(m,d,false)}else{if(n.attachEvent){n.attachEvent("on"+m,function(){return d.call(n,window.event)})}}},e,f=new RegExp("\\bhover\\b","g"),a=[],j=new RegExp("\\bselected\\b","g"),g=function(m){var d=a.length;while(d--){if(a[d]&&m==a[d][1]){return a[d][0]}}return false},h=function(s){var n,d,q,m,p,r,u=[],o=0;while(s&&s!=e&&s!=i){if("LI"==s.nodeName.toUpperCase()){u[u.length]=s;d=g(s);if(d){clearTimeout(d)}s.className=s.className?(s.className.replace(f,"")+" hover"):"hover";m=s}s=s.parentNode}if(m&&m.parentNode){p=m.parentNode;if(p&&"UL"==p.nodeName.toUpperCase()){n=p.childNodes.length;while(n--){r=p.childNodes[n];if(r!=m){r.className=r.className?r.className.replace(j,""):""}}}}n=a.length;while(n--){q=false;o=u.length;while(o--){if(u[o]==a[n][1]){q=true}}if(!q){a[n][1].className=a[n][1].className?a[n][1].className.replace(f,""):""}}},l=function(d){while(d&&d!=e&&d!=i){if("LI"==d.nodeName.toUpperCase()){(function(m){var n=setTimeout(function(){m.className=m.className?m.className.replace(f,""):""},500);a[a.length]=[n,m]})(d)}d=d.parentNode}},b=function(p){var n,d,o,m=p.target||p.srcElement;while(true){if(!m||m==i||m==e){return}if(m.id&&m.id=="wp-admin-bar-get-shortlink"){break}m=m.parentNode}if(p.preventDefault){p.preventDefault()}p.returnValue=false;if(-1==m.className.indexOf("selected")){m.className+=" selected"}for(n=0,d=m.childNodes.length;n<d;n++){o=m.childNodes[n];if(o.className&&-1!=o.className.indexOf("shortlink-input")){o.focus();o.select();o.onblur=function(){m.className=m.className?m.className.replace(j,""):""};break}}return false};c(k,"load",function(){e=i.getElementById("wpadminbar");if(i.body&&e){i.body.appendChild(e);c(e,"mouseover",function(d){h(d.target||d.srcElement)});c(e,"mouseout",function(d){l(d.target||d.srcElement)});c(e,"click",b)}if(k.location.hash){k.scrollBy(0,-32)}})})(document,window)}; 
Note: See TracChangeset for help on using the changeset viewer.