Вход Регистрация
Файл: framework/thirdparty/jstree/_lib/jquery.hotkeys.js
Строк: 81
<?php
/*
 * jQuery Hotkeys Plugin
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 *
 * Based upon the plugin by Tzury Bar Yochay:
 * http://github.com/tzuryby/hotkeys
 *
 * Original idea by:
 * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
*/

(function(jQuery){
    
    
jQuery.hotkeys = {
        
version"0.8",

        
specialKeys: {
            
8"backspace"9"tab"13"return"16"shift"17"ctrl"18"alt"19"pause",
            
20"capslock"27"esc"32"space"33"pageup"34"pagedown"35"end"36"home",
            
37"left"38"up"39"right"40"down"45"insert"46"del"
            
96"0"97"1"98"2"99"3"100"4"101"5"102"6"103"7",
            
104"8"105"9"106"*"107"+"109"-"110"."111 "/"
            
112"f1"113"f2"114"f3"115"f4"116"f5"117"f6"118"f7"119"f8"
            
120"f9"121"f10"122"f11"123"f12"144"numlock"145"scroll"191"/"224"meta"
        
},
    
        
shiftNums: {
            
"`""~""1""!""2""@""3""#""4""$""5""%""6""^""7""&"
            
"8""*""9""(""0"")""-""_""=""+"";"": ""'"""", ",": "<", 
            "
.": ">",  "/": "?",  "\": "|"
        }
    };

    function keyHandler( handleObj ) {
        // Only care when a possible input has been specified
        if ( typeof handleObj.data !== "
string" ) {
            return;
        }
        
        var origHandler = handleObj.handler,
            keys = handleObj.data.toLowerCase().split(" ");
    
        handleObj.handler = function( event ) {
            // Don't fire in text-accepting inputs that we didn't directly bind to
            if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
                 event.target.type === "
text") ) {
                return;
            }
            
            // Keypress represents characters, not special keys
            var special = event.type !== "
keypress" && jQuery.hotkeys.specialKeys[ event.which ],
                character = String.fromCharCode( event.which ).toLowerCase(),
                key, modif = "", possible = {};

            // check combinations (alt|ctrl|shift+anything)
            if ( event.altKey && special !== "
alt" ) {
                modif += "
alt+";
            }

            if ( event.ctrlKey && special !== "
ctrl" ) {
                modif += "
ctrl+";
            }
            
            // TODO: Need to make sure this works consistently across platforms
            if ( event.metaKey && !event.ctrlKey && special !== "
meta" ) {
                modif += "
meta+";
            }

            if ( event.shiftKey && special !== "
shift" ) {
                modif += "
shift+";
            }

            if ( special ) {
                possible[ modif + special ] = true;

            } else {
                possible[ modif + character ] = true;
                possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;

                // "
$" can be triggered as "Shift+4" or "Shift+$" or just "$"
                if ( modif === "
shift+" ) {
                    possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;
                }
            }

            for ( var i = 0, l = keys.length; i < l; i++ ) {
                if ( possible[ keys[i] ] ) {
                    return origHandler.apply( this, arguments );
                }
            }
        };
    }

    jQuery.each([ "
keydown", "keyup", "keypress" ], function() {
        jQuery.event.special[ this ] = { add: keyHandler };
    });

})( jQuery );
?>
Онлайн: 1
Реклама