Estou iniciando os estudos de programação e estou na aula de Desafio Projeto Sorteador de número e parece que na parte do codigo da aula:
function alterarStatusBotao() {
let botao = document.getElementById('btn-reiniciar');
if (botao.classList.contains('container__botao-desabilitado')) {
botao.classList.remove('container__botao-desabilitado');
botao.classList.add('container__botao');
} else {
botao.classList.remove('container__botao');
botao.classList.add('container__botao-desabilitado');
}
}
Vai gerar um bug porque basta clicar no botão que vai alterar.
Minha leitura do codigo: Se a Id "btn-reiniciar" conter a classList "container__botao-desabilitado", remova-o e adicione classList = 'container__botao', senão (classList for container__botao) remove 'container__botao' e adicione 'container__botao-desabilitado'. Então sempre vai verificar se a classList é 'container__botao' ou 'container__botao-desabilitado' alterando ao clicar. Pode acontecer de um usuario clicar duas vezes sem querer e o botão vai ser alterado. Assim terá um efeito não desejado. É isso? ou interpretei errado?
Proposta: criar duas functions e inserir ao fim das functions: *sortear() {habilitarBotaoReiniciar()}*reiniciar() {desabilitarBotaoReiniciar()}
function habilitarBotaoReiniciar() {
let botao = document.getElementById("btn-reiniciar");
botao.classList.remove("container__botao-desabilitado");
botao.classList.add("container__botao");
}
function desabilitarBotaoReiniciar() {
let botao = document.getElementById("btn-reiniciar");
botao.classList.remove("container__botao");
botao.classList.add("container__botao-desabilitado");
}
Assim condiciona a alteração do status do botão a execução da function e não ao clique no botão.