3 votes

Connaître si l'entrée est utilisée et désactiver la touche de raccourci (Jquery)

J'utilise quelques raccourcis clavier sur mon site web, mais lorsque l'utilisateur est à l'intérieur du formulaire de recherche ou à l'intérieur des commentaires, je veux les désactiver.

Quelle est la meilleure façon pour moi de le faire? Merci

Exemple de mon raccourci clavier :

$(document).keydown(function(e)
{
    if (e.which == 40 || e.which == 74) // article suivant
    { 
        return scroll('suivant');
    }

    if (e.which == 38 || e.which == 75) // article précédent
    { 
        return scroll('précédent');
    }
});

3voto

jAndy Points 93076

Vous pouvez vérifier l'élément event.target. Si cet élément est de type INPUT, vous voudrez peut-être omettre le code du gestionnaire. Cela pourrait ressembler à

$(document).keydown(function(e)
    {
        if( e.target.nodeName !== 'INPUT' ) {
            if (e.which == 40 || e.which == 74) // prochain post
            { 
                return scroll('next');
            }

            if (e.which == 38 || e.which == 75) // post précédent
            { 
                return scroll('prev');
            }
        }
});

2voto

Nicola Peluchetti Points 38948

Vous pourriez vérifier si e.target.nodeName === INPUT (l'événement est déclenché à l'intérieur d'un champ de saisie) et agir en conséquence

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X