with - verificar se botão foi clicado javascript
Como posso verificar se meu ID de elemento está em foco? (4)
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
).
Esta questão já tem uma resposta aqui:
- Como descubro qual elemento DOM tem o foco? 16 respostas
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?
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")