2011-12-19 8 views
10

मैं अपने वेब ऐप में ज़ूम इन और आउट फ़ंक्शंस को ट्रिगर करने के लिए प्लस और माइनस कुंजियों का उपयोग करना चाहता हूं। निम्नलिखित कोड काम करता है, ज्यादातर:जावास्क्रिप्ट में प्लस/बराबर और बराबर कुंजी को अलग करने के लिए कैसे?

$(document).keydown(function(e) { // requires jQuery 
    console.log(e.keyCode); 
    if (e.keyCode === 189) { // minus 
     zoom_out(); 
     return false; 
    } 
    if (e.keyCode === 187) { // plus 
     zoom_in(); 
     return false; 
    } 
}); 

कुंजी कोड 187 यह वापस भेज दिया =/+ कुंजी के साथ-साथ कीपैड + कुंजी दबाने। यह ठीक है, अगर अजीब है, लेकिन 187 को कीपैड = कुंजी से भी वापस कर दिया गया है, जिसे मैं ज़ूमिंग के लिए उपयोग नहीं करना चाहता हूं। मैं +/=, =, और + कुंजी को कैसे अलग कर सकता हूं?

+2

आप "कीडाउन" के बजाय "कीप्रेस" का उपयोग कर सकते हैं, क्योंकि तब आपको केवल कुंजीकोड के बजाय पूरी तरह से अनुवादित वर्ण मिलता है। – Pointy

+0

'Ctrl' +' + 'ब्राउज़र में यह पहले से ही करता है –

+0

यदि आप कीडाउन या कीप (कुंजीपटल की तुलना में) का उपयोग कर रहे हैं तो आपको =/+ कुंजी और कीपैड + कुंजी के लिए _different_ कोड मिलना चाहिए, लेकिन वही यदि आप शिफ्ट रखते हैं तो इस पर ध्यान दिए बिना =/+ के लिए कोड। मुझे यहां जांच के रूप में मेरे कीबोर्ड के साथ अलग-अलग कोड मिलते हैं: http://www.webonweboff.com/tips/js/event_key_codes.aspx#instant-test (मेरे कीपैड में एक = कुंजी नहीं है, इसलिए हमारे कीबोर्ड अलग होना चाहिए ।) – nnnnnn

उत्तर

9

shiftKey संपत्ति का उपयोग करें।

तो e.shiftKeytrue है (आपने ठीक समझा!) शिफ्ट नीचे आयोजित किया जा रहा है और इसलिए e.keyCode === 187 && e.shiftKey मतलब है + दबाया गया था।

संबंधित मुद्दे