2011-11-07 12 views
9

मैं एक div पर keydown घटनाएं प्राप्त करना चाहता हूं। मैं JQuery keydown का उपयोग करें। बहुत साधारण।क्रोम में div पर keydown ईवेंट कैसे प्राप्त कर सकता हूं?

हालांकि, यह क्रोम पर काम नहीं करता है। क्रोम पर काम करने के लिए, मुझे tabindex = 0.

यदि मैं ऐसा करता हूं, तो क्रोम मेरे div के चारों ओर एक बदसूरत नारंगी सीमा रखता है।

क्या इस काम को बदसूरत नारंगी सीमा के बिना क्रोम पर बनाने का कोई तरीका है?

+0

मैं सवाल करता हूं कि आप जहां भी सही तरीके से जा रहे हैं। एक 'कीडाउन' घटना होने के लिए आपको सैद्धांतिक रूप से अपने तत्व पर ध्यान केंद्रित करने की आवश्यकता है, अन्यथा आप किस पर कुंजी-डाउन कर रहे हैं? –

+0

div पर एक कीडाउन घटना कैसे हो सकती है ??? मैंने सोचा कि केवल टेक्स्ट इनपुट और टेक्स्टरेरा को – frenchie

उत्तर

16

कीडाउन ईवेंट केवल HTML तत्व को भेजा जाता है जिसमें फोकस होता है। फोकस करने योग्य तत्व ब्राउज़र के बीच भिन्न होते हैं, लेकिन टैबिएंडेक्स संपत्ति के तत्व सेट किए जाने वाले तत्व हमेशा अधिकांश ब्राउज़रों में फोकस कर सकते हैं।

आप पहले से ही div तत्व के लिए tabindex सेट कर चुके हैं ताकि यह फोकस करने योग्य हो और कीबोर्ड ईवेंट प्राप्त कर सके। आपकी समस्या Google क्रोम पर वर्तमान में केंद्रित तत्व की डिफ़ॉल्ट रूपरेखा है।

रूपरेखा (जैसा कि आपने उल्लेख किया है "बदसूरत नारंगी सीमा") को बदलने के लिए, छद्म सीएसएस वर्ग का उपयोग करें: फोकस और सीएसएस संपत्ति की रूपरेखा। निम्न उदाहरण फोकस होने पर सभी तत्वों से रूपरेखा हटा देगा:

*:focus 
{ 
    outline: none; 
} 

इस सहायता की आशा करें।

+1

दबाया जा सकता है बस एक नोट है कि अभिगम्यता के लिए, रूपरेखा सेट करना: कोई सार्वभौमिक नहीं है * अनुशंसित *। Http://webaim.org/blog/plague-of-outline-0 और http://www.outlinenone.com देखें – jbyrd

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