मैं वर्तमान में एक वेब ऐप पर काम कर रहा हूं जिसके लिए एक मानक डेस्कटॉप एप्लिकेशन मेनू बार की आवश्यकता है। मैंने मेनू बार पर काम करना शुरू कर दिया है और लेआउट को क्रमबद्ध किया है।
Unfortunatrly, क्लाइंट एक्सेस करना चाहता हैकुंजियाँ (जैसे कि Alt + F) "फ़ाइल" मेनू को लोड करती है। जब Alt कुंजी दबाया जाता है, तो मैं पहुंच कुंजियों को दिखाना चाहता हूं। वर्तमान में मेरे पास इसे संभालने के लिए निम्न jQuery कोड है:
$(document).ready(function() {
$(this).keydown(function(e) {
if(e.keyCode == 18) { alt_shifter = true; $(".access_key").css({ textDecoration: "underline" }); }
});
$(this).keyup(function(e) {
if(e.keyCode == 18) { alt_shifter = false; $(".access_key").css({ textDecoration: "none" }); }
});
});
दुर्भाग्य से, जैसा कि आप "jsFiddle पर देखेंगे, के लिएGoogle Chrome में कुछ कारण, जब Alt को दबाते हैं, तो कुंजियों को रेखांकित किया जाता है, फिर की-ऑन पर सामान्यीकृत किया जाता है। हालाँकि, Alt फिर से दबाने से कुछ नहीं होता है, अगली बार जब तक यह दबाया जाता है। यह लगभग ऐसा है जैसे कि एक बार अंडरलाइन हो गया हो और keyup
निकाल दिया गया है, यह तब तक कीप को पंजीकृत नहीं करता है जब तक कि इसे फिर से दबाया न जाए।
यहाँ "jsFiddle डेमो> है http://jsfiddle.net/Ht2wD/
कोई मदद सबसे आभार प्राप्त होगा!
उत्तर:
जवाब के लिए 5 № 1मैंने शामिल करने के लिए कोड को बदल दिया e.preventDefault (); कीकोड जांच के ठीक पहले और यह काम करने लगा। यहाँ वह वेबसाइट है जिसने मुझे उस उत्तर पर पहुंचने में मदद की http://unixpapa.com/js/key.html
जवाब के लिए 4 № 2
इसके साथ प्रयास करें: http://jsfiddle.net/Ht2wD/14/
का उपयोग करते हुए e.preventDefault();
मेरे लिए काम।
जवाब के लिए 2 № 3
यहां आपकी अपडेट की गई फ़िडल है: http://jsfiddle.net/Ht2wD/13/
यह प्यारा मुद्दा जोड़कर तय किया गया है e.preventDefault()
। अगर मुझे अनुमान लगाना था, तो यह इसलिए है क्योंकि ALT कुंजी भी ब्राउज़र द्वारा ही कैप्चर की जाती है और अपने स्वयं के हाइलाइट किए गए मेनू को प्रदर्शित कर रही है।
$(document).ready(function() {
$(this).keydown(function(e) {
e.preventDefault();
if(e.keyCode == 18) { alt_shifter = true; $(".access_key").css({ textDecoration: "underline" }); }
});
$(this).keyup(function(e) {
e.preventDefault();
if(e.keyCode == 18) { alt_shifter = false; $(".access_key").css({ textDecoration: "none" }); }
});
});