/ / jQuery $ (दस्तावेज़) .keydown () मुद्दे - jquery, google-chrome

jQuery $ (दस्तावेज़) .keydown () मुद्दे - jquery, google-chrome

मैं वर्तमान में एक वेब ऐप पर काम कर रहा हूं जिसके लिए एक मानक डेस्कटॉप एप्लिकेशन मेनू बार की आवश्यकता है। मैंने मेनू बार पर काम करना शुरू कर दिया है और लेआउट को क्रमबद्ध किया है।

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" }); }
});
});