2009-09-26 13 views
37

मेरे पास जावास्क्रिप्ट विंडो है। पॉप पॉपअप है, और मैं चाहता हूं कि जब उपयोगकर्ता ईएससी कुंजी दबाए तो पॉपअप स्वयं बंद हो जाए। मैं यह नहीं समझ सकता कि कीडाउन ईवेंट (और किस ऑब्जेक्ट पर) को हुक करना है ताकि मैं ईएससी कुंजी पकड़ सकूं।जावास्क्रिप्ट पॉपअप विंडो पर ईएससी कीडाउन को कैसे संभालें

मैं jQuery का उपयोग कर रहा हूं।

उत्तर

92

कुछ इस तरह का प्रयास करें:

$(document).keydown(function(e) { 
    // ESCAPE key pressed 
    if (e.keyCode == 27) { 
     window.close(); 
    } 
}); 
+3

आप इस के लिए Gumbo धन्यवाद। यह गूगल पर पहली चीज़ के रूप में आया :) – dvLden

3

याद रखें कि आप पॉपअप विंडो में समारोह @Gumbo posted का उपयोग करना चाहिए ... तो क्या आप पॉप-अप में JQuery शामिल करने और समारोह निष्पादित नहीं करने की आवश्यकता होगी खिड़की जो पॉपअप खोलता है।

+1

गम्बो क्या है? (स्टैक ओवरफ्लो के लिए अर्थहीन अंतर) –

+0

मशीन उस समारोह का जिक्र कर रही है जिसे गम्बो ने पोस्ट किया है (जिसे आपने स्वीकार किया है)। –

38

यह संभव है का उपयोग jQuery का उपयोग किए बिना जे एस के साथ प्राप्त करने के लिए कर सकते हैं।

window.onkeydown = function(event) { 
    if (event.keyCode == 27) { 
     console.log('escape pressed'); 
    } 
}; 
+7

मैं समझता हूं कि यह वोट दिया गया है क्योंकि सवाल jQuery के लिए पूछा गया था, लेकिन शुद्ध जावास्क्रिप्ट की तलाश करने वालों के लिए यह उत्तर बहुत उपयोगी है। तो मुझसे 1 अप-वोट। –

+4

ध्यान रखें कि jQuery नियमित जेएस का उपयोग करने की क्षमता को हटा नहीं देता है। –

+0

बहुत बढ़िया। बहुत बहुत धन्यवाद! –

0

@Gumbo के जवाब अच्छा है, लेकिन अक्सर आप तो मैं one ईवेंट हैंडलर का उपयोग करने का सुझाव देते हैं इस व्यवहार घृणाजनक करने की जरूरत है:

$(document).one('keydown', function(e) { 
    // ESCAPE key pressed 
    if (e.keyCode == 27) { 
     window.close(); 
    } 
}); 

या

$(document).on('keydown', function(e) { 
    // ESCAPE key pressed 
    if (e.keyCode == 27) { 
     window.close(); 
    } 
}); 

और जब तैयार व्यवहार को रोकने के लिए

$(document).off('keydown'); 
0

event.key === "एस्केप"

कोई और मनमाना संख्या कोड नहीं!

document.addEventListener('keydown', function(event) { 
    const key = event.key; // const {key} = event; in ES6+ 
    if (key === "Escape") { 
     window.close(); 
    } 
}); 

Mozilla Docs

Supported Browsers

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