2010-11-02 84 views
8

फ़ोगबगज़ कीबोर्ड कीबोर्ड शॉर्टकट का एक बहुत अच्छा कार्यान्वयन है।फोगबगज़-शैली कीबोर्ड शॉर्टकट्स के किसी भी अच्छे कार्यान्वयन?

आपने सीटीआरएल + ; और आपके द्वारा मारा जाने वाला अगला कुंजी वर्तमान पृष्ठ पर उपयोगकर्ता इंटरफ़ेस तत्व से मेल खाएगा।

यह बड़े करीने से मौजूदा ब्राउज़र कीबोर्ड शॉर्टकट के साथ परस्पर विरोधी से बचा जाता है (जैसा भी मामला हो सकता है यह तो आप बस CTRL + एक, CTRL + बी .. शैली शॉर्टकट जोड़ने की कोशिश की)।

इससे भी बेहतर, CTRL + ; "प्रत्येक शॉर्टकट के साथ प्रत्येक क्रिया पर छोटे पीले टैग दिखाई देंगे।" तो आपके पास हर समय एक त्वरित कीबोर्ड शॉर्टकट संदर्भ है।

पूर्ण यहाँ विस्तार: http://fogbugz.stackexchange.com/questions/4310

देखा एक jQuery किसी को भी आधारित है (या अन्य) कार्यान्वयन है कि हम इस्तेमाल कर सकते हैं चारों ओर झूठ बोल रही है?

उत्तर

0

JQ Hotkeys plugin might हो एक अच्छा match ...

http://code.google.com/p/js-hotkeys/

+1

यह ईवेंट हैंडलरों को बाध्य कुंजी प्रेस को छोड़कर बहुत कुछ नहीं करता है, जब तक कि मुझे कुछ याद न हो? – J22

1

There Are एक few things आप कैन करते को प्राप्त इस। स्पष्टीकरण के लिए, आप कीबोर्ड कॉम्बो Ctrl + का उपयोग करने में सक्षम होना चाहते हैं; अगली कीडाउन को कोड के टुकड़े को ट्रिगर करने की अनुमति देने के लिए? यदि यह है कि आप क्या देख रहे हैं, तो आप इस तरह कुछ कर सकता है: (jQuery में)

// For getting the function corresponding to the key 
    function getPosition(arrayName,arrayItem) 
    { 
     for(var i=0;i<arrayName.length;i++){ 
     if(arrayName[i]==arrayItem) 
      return i; 
     } 
    } 
     // Written By Ben Bales 


    var ctrlDown = false; // Tells if the cotrol button is currently down 
    var semicolonDown = false; // Tells if the semicolon button is down 
    var allowShortcut = false; // Allows the key following ctrl+; to run a function 
    var keyTimeout = 800; // Allows the following keystroke within this amount of milliseconds after ctrl+; 

    // reset allowShortcut 
    function disableShortcut() 
    { 
     allowShortcut = false; 
     console.log("dead"); 

    }  

    $(document).keydown(function(e){ 
     if(e.keyCode == 17) ctrlDown = true; 
     if(e.keyCode == 186 || e.keyCode == 59) semicolonDown = true; 
     //console.log("Semicolon: "+semicolonDown); 
     //console.log("Ctrl: "+ctrlDown); 


     // If both keys are down, allow a following key to do something 


     if(allowShortcut == true) 
     { 
      var key = e.keyCode; 
      //alert(key); 

       var actionPos = getPosition(keyArray,key); 
       actionArray[actionPos](); 
       allowShortcut = false; 

     } 

     if(ctrlDown == true && semicolonDown == true) 
     { 
      allowShortcut = true; 
      // after a certian amount of time dont allow the following key to do something 
      setTimeout(disableShortcut,keyTimeout); 
     } 

    }); 

    $(document).keyup(function(e){ 
     if(e.keyCode == 17) ctrlDown = false; 
     if(e.keyCode == 186 || e.keyCode == 59) semicolonDown = false; 
    }); 

    // You may want to put your shortcuts in arrays with corresponding keyCodes like so: 

    var actionArray = new Array(doSomething,doSomethingelse); 

    var keyArray = new Array(65,66); 

    // sample actions 

    function doSomething() 
    { 
     alert("did something"); 
    } 

    function doSomethingelse() 
    { 
     alert("did something else"); 
    } 

मैं सिर्फ यह जल्दी से बना है और यह परीक्षण नहीं किया है, लेकिन उम्मीद है कि आप समझ जायेंगे कि यह करने के लिए कोशिश कर रहा है। लेकिन फिर फिर यह केवल 15 साल का समाधान है। यदि आप इसे HTML टेम्पलेट में सेट अप करते हैं और इसे आज़माएं, तो Ctrl + ; और उसके बाद या बी कुंजी उनके संबंधित कार्यों को चलाने के लिए दबाएं।

मुझे बताएं कि आपको और मदद की ज़रूरत है!

+0

console.log() की अनदेखा करें (मैंने उन्हें डिबगिंग के लिए उपयोग किया था) – BBales