with - verificar se botão foi clicado javascript




Como posso verificar se meu ID de elemento está em foco? (4)

Esta questão já tem uma resposta aqui:

Digamos que eu tenha o seguinte div que obtém foco após uma determinada condição ser atendida:

<div id="myID" tabindex="-1" >Some Text</div>

Eu quero criar um manipulador que verifica se div tem ou não o foco, e quando ele avalia a verdadeira / foco está na div, faça alguma coisa (no exemplo abaixo, imprima um log de console):

if (document.getElementById('#myID').hasFocus()) {
            $(document).keydown(function(event) {
                if (event.which === 40) {
                    console.log('keydown pressed')
                }
            });
        }

Estou recebendo uma mensagem de erro no console que diz:

TypeError: Não é possível ler a propriedade 'hasFocus' de null

Alguma ideia do que estou fazendo errado aqui? Talvez a maneira que eu estou passando o div Id?


Compare document.activeElement com o elemento que você deseja verificar o foco. Se eles são iguais, o elemento é focalizado; caso contrário, não é.

// dummy element
var dummyEl = document.getElementById('myID');

// check for focus
var isFocused = (document.activeElement === dummyEl);

hasFocus faz parte do document ; não existe esse método para elementos DOM.

Além disso, document.getElementById não usa um # no início do myID . Mude isso:

var dummyEl = document.getElementById('#myID');

para isso:

var dummyEl = document.getElementById('myID');

Se você quiser usar uma consulta CSS, use querySelector (e querySelectorAll ).


Escreva abaixo o código no script e também adicione a biblioteca jQuery

var getElement = document.getElementById('myID');

if (document.activeElement === getElement) {
        $(document).keydown(function(event) {
            if (event.which === 40) {
                console.log('keydown pressed')
            }
        });
    }

Obrigado...


Se você quiser usar jquery $("..").is(":focus") .

Você pode dar uma olhada nesta stack


Use document.activeElement

Deveria trabalhar.

PS getElementById("myID") não getElementById("#myID")





html