Bonjour,
J'ai réaliser un code pour effectuer un changement du contenue lors de la pression sur les flèches gauche et droite :

$(document).keydown(function(e){
        var id = (parseInt($('li.active').attr('id')));
        if(id!=1){
            if(e.keyCode == 37){
                var id = (parseInt($('li.active').attr('id'))-1);
                $('li.active').removeClass('active').stop(true).fadeOut('300');
                $('li[id="'+id+'"]').addClass('active').delay('300').stop(true).fadeIn('300');
                window.location.hash="#"+id;
            }
        }
        if(id!=<?php echo $numpage ?>){
            if(e.keyCode == 39){
                var id = (parseInt($('li.active').attr('id'))+1);
                $('li.active').removeClass('active').stop(true).fadeOut('300');
                $('li[id="'+id+'"]').addClass('active').delay('300').stop(true).fadeIn('300');
                window.location.hash="#"+id;
            }
        }
    });

Ce que je voudrais c'est avoir une condition pour que si le visiteur est focus sur un input ou select, les flèches n’exécute aucun code.
Quelqu'un aurais une solution ?

2 réponses


Natà
Réponse acceptée

Salut,
Comme ça sans tester, je dirais :

if(!$('input').is(':focus')||!$('select').is(':focus')){
    //Ton code
}

Encore une fois, je n'ai pas testé, tiens nous au courant. :)

EDIT: Non, désolé ça marche pas mais je laisse le code, je pense que la base de réflexion n'est pas mauvaise.

Re-EDIT: (trouvé sur StackOverflow)

if ($('*:focus').length == 0) {
     //do Something
}
LesTutossUE4
Auteur
Réponse acceptée

Merci beaucoup, je clarifie si quelqu'un d'autre est intéressé par la réponse :

if ($('*:focus').length == 0) {
     //exécuter l'action si aucun élément n'est focus
}