Comment puis-je fermer un dialogue ouvert sans activateur, lorsque l'utilisateur appuie sur la touche Échap du clavier?
Ajouter @keydown.esc="dialog = false"
au composant v-dialog
<v-dialog v-model="dialog" @keydown.esc="dialog = false"></v-dialog>
data: () => ({
dialog: false
}),
Exemple de travail: https://codepen.io/anon/pen/BJOOOQ
De plus, si vous utilisez dialog en tant que composant personnalisé, nous devons éventuellement émettre un événement d'entrée:
<template>
<v-dialog :value="value" @keydown.esc="$emit('input')">
...
ce code peut peut-être vous aider
mounted() {
let self = this;
window.addEventListener('keyup', function(event) {
// If ESC key was pressed...
if (event.keyCode === 27) {
// try close your dialog
self.advanced_search = false;
}
});
},
Ce que vous voulez utiliser est un modificateur de clé. Vous pouvez utiliser la directive v-on:keyup.esc
dans votre boîte de dialogue pour détecter si la clé escape
est détectée.
Lisez ceci pour plus d'informations sur les modificateurs de clé