दिलचस्प पोस्ट
एंड्रॉइड स्टूडियो कैसे रीसेट करें वाक्यांशों के भीतर कीवर्ड गणना और हाइलाइट करें सबसे अच्छा यूएमएल आरेखण उपकरण क्या है? कैसे एंड्रॉइड में edittext के लिए केवल संख्यात्मक मान सेट करने के लिए? जावास्क्रिप्ट बंद कैसे काम करता है? क्या मैं अनुक्रमों को दोहराकर जावा में स्ट्रिंग्स बढ़ा सकता हूँ? गतिशील रूप से स्थिर पर आधारित एक नियंत्रक में templateUrl सेट करने की कोशिश कर रहा Android में सेल सेवा सिग्नल की ताकत कैसे प्राप्त करें? रूबी: kind_of? बनाम instance_of? बनाम is_a? अजगर, वर्तमान में लॉग-इन उपयोगकर्ता के लिए खिड़कियां विशेष फ़ोल्डर्स प्राप्त करें UITableViewCell क्लिक पर विस्तार PHP में एक वैश्विक चर को कैसे घोषित करना है? जब (यदि कभी) eval नहीं बुराई है? एक पृथक धागा में एक ObservableCollection को अद्यतन करना ES5 और ES6 में कोणीय 2 निर्भरता इंजेक्शन

.कीकोड बनाम। जो

मैंने सोचा था कि यह कहीं स्टैक अतिप्रवाह पर उत्तर दिया जाएगा, लेकिन मुझे यह नहीं मिल रहा है।

अगर मैं एक कुंजीपटल इवेंट के लिए सुन रहा हूँ, तो मुझे .keyCode या .which का प्रयोग करना चाहिए .which यह निर्धारित करने के लिए कि क्या Enter कुंजी दबाई गई थी?

मैंने हमेशा निम्न की तरह कुछ किया है:

 $("#someid").keypress(function(e) { if (e.keyCode === 13) { e.preventDefault(); // do something } }); 

लेकिन मैं उन उदाहरणों को देख रहा हूँ .which कि .keyCode बजाय। क्या फर्क पड़ता है? क्या एक और क्रॉस-ब्राउज़र अन्य की तुलना में अनुकूल है?

वेब के समाधान से एकत्रित समाधान ".कीकोड बनाम। जो"

कुछ ब्राउज़रों का उपयोग keyCode , अन्य इसका उपयोग करते हैं यदि आप jQuery का उपयोग कर रहे हैं, तो आप मज़बूती से उपयोग कर सकते हैं which jQuery के रूपों को मानकीकृत करता है । यहां अधिक।


यदि आप jQuery का उपयोग नहीं कर रहे हैं, तो आप यह कर सकते हैं:

 var key = 'which' in e ? e.which : e.keyCode; 

या वैकल्पिक रूप से:

 var key = e.which || e.keyCode || 0; 

… जो इस संभावना को संभालता है कि e.which । जो हो सकता है 0 (अंत में उस 0 को पुन: स्थापित करके, जावास्क्रिप्ट की उत्सुकता से शक्तिशाली || ऑपरेटर )

jQuery सामान्य event.which जो कि event.which आधार पर निर्भर करता है। event.which , event.keyCode या event.charCode ब्राउज़र द्वारा समर्थित है:

 // Add which for key events if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { event.which = event.charCode != null ? event.charCode : event.keyCode; } 

का एक अतिरिक्त लाभ .which यह है कि jQuery यह माउस क्लिक के लिए भी करता है:

 // Add which for click: 1 === left; 2 === middle; 3 === right // Note: button is not normalized, so don't use it if ( !event.which && event.button !== undefined ) { event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); } 

इसे देखें: https://developer.mozilla.org/en-US/docs/Web/API/event.keyCode

एक कुंजीपटल घटना में, दबाए गए कुंजी का यूनिकोड मान को या तो कुंजी कोड या चारकोड प्रॉपर्टी में संग्रहित किया जाता है, कभी भी नहीं। यदि दबाए गए कुंजी एक चरित्र (जैसे 'ए') उत्पन्न करती है, तो चारकोडा उस वर्ण के कोड पर सेट होता है, जो पत्र केस का सम्मान करता है। (यानी चारकोडा इस बात को ध्यान में रखता है कि क्या शिफ्ट कुंजी को रोक दिया गया है)। अन्यथा, दबाए गए कुंजी का कोड keycode में संग्रहीत किया जाता है keycode हमेशा keydown और keyup घटनाओं में सेट है इन मामलों में, चारकोडा कभी सेट नहीं होता है कुंजी कोड का कोड प्राप्त करने के लिए चाहे वह कुंजी कोड या चारकोडा में संग्रहीत हो, उस प्रॉपर्टी को क्वेरी करें IME के ​​माध्यम से दर्ज किए गए पात्रों को मुख्य कोड या चारकोड के माध्यम से पंजीकृत नहीं किया जाता है

यदि आप वेनिला जावास्क्रिप्ट में रह रहे हैं, तो कृपया ध्यान दें की कुंजी को अब बहिष्कृत किया गया है और इसे हटा दिया जाएगा:

यह सुविधा वेब मानकों से हटा दी गई है। हालांकि कुछ ब्राउज़रों अभी भी इसका समर्थन कर सकते हैं, यह गिरावट की प्रक्रिया में है। इसे प्रयोग करने से बचें और यदि संभव हो तो मौजूदा कोड अपडेट करें; अपने निर्णय के मार्गदर्शन के लिए इस पृष्ठ के नीचे संगतता तालिका देखें ध्यान रखें कि यह सुविधा किसी भी समय काम करने के लिए समाप्त हो सकती है

https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode

इसके बजाय या तो उपयोग करें: .key या .code जो आप चाहते हैं उसके आधार पर: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code https://developer.mozilla.org/en -US / docs / वेब / एपीआई / KeyboardEvent / कुंजी

दोनों आधुनिक ब्राउज़रों पर लागू होते हैं

कीबोर्ड इनपुट और कुंजी संयोजनों को कैप्चर करने के लिए एक मजबूत जावास्क्रिप्ट लाइब्रेरी दर्ज की गई। इसमें कोई निर्भरता नहीं है

http://jaywcjlove.github.io/hotkeys/

 hotkeys('ctrl+a,ctrl+b,r,f', function(event,handler){ switch(handler.key){ case "ctrl+a":alert('you pressed ctrl+a!');break; case "ctrl+b":alert('you pressed ctrl+b!');break; case "r":alert('you pressed r!');break; case "f":alert('you pressed f!');break; } }); 

हॉटकीज़ निम्न संशोधकों को समझता है: , shift , option , , alt , ctrl , control , command , और

निम्नलिखित विशेष कुंजी को शॉर्टकट के लिए इस्तेमाल किया जा सकता है: backspace , tab , clear , enter , return , esc , escape , space , up , down , left , right , home , end , pagedown , pagedown , del , delete और f1 से f1