Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Logica de Programação, atividade dos ingressos

Nessa atividade o codigo da aula ficou muito diferente do meu, então achei interessante compartilhar o meu aqui. Nessa atividade eu criei uma nova classe para que eu pudesse adiciona-la ao botão, e o botão ficar cinza caso não tivesse mais ingressos

let ingressos = {}
ingressos['pista'] = parseInt(document.getElementById('qtd-pista').textContent)
ingressos['superior'] = parseInt(document.getElementById('qtd-superior').textContent)
ingressos['inferior'] = parseInt(document.getElementById('qtd-inferior').textContent)

function editarTexto(id, texto){
    let campo = document.getElementById(id)
    campo.innerHTML = texto
}

function desabilitarBotao(){
    let botao = document.getElementById('btn')
    botao.setAttribute('disabled', true)
    botao.classList.add('botao__desabilitado')
    botao.innerHTML = 'esgotado'
}

function diminuirIngressos(ingresso, quantidade){
    ingressos[ingresso] = ingressos[ingresso] - quantidade
    if (ingressos[ingresso] >= 0){
        editarTexto(`qtd-${ingresso}`, ingressos[ingresso])
    } else {
        desabilitarBotao()
    }
}

function comprar(){
    let ingresso = document.getElementById('tipo-ingresso').value
    let quantidade = parseInt(document.getElementById('qtd').value)
    if (quantidade > 100){
        alert('Escolha uma quantidade menor')
    } else {
        diminuirIngressos(ingresso, quantidade)
    document.getElementById('qtd').value = ''
    }
}

Mas eu também consegui resumir esse codigo inteiro em 13 linhas, mas sem algumas funções que existem nesse primeiro codigo:

function comprar(){
    let ingresso = document.getElementById('tipo-ingresso').value
    let vagas = parseInt(document.getElementById(`qtd-${ingresso}`).textContent)
    let quantidade = parseInt(document.getElementById('qtd').value)
    if (quantidade > vagas){
        alert('quantidade indisponivel')
    } else {
        vagas = vagas - quantidade
    let campo = document.getElementById(`qtd-${ingresso}`)
    campo.innerHTML = vagas
    document.getElementById('qtd').value = ''
    }
 }
1 resposta
solução!

Oii, Gabriel. Tudo bem?

Obrigada por compartilhar seu código com a gente. É muito interessante ver como você adaptou a lógica para desabilitar o botão quando os ingressos se esgotam. Criar uma nova classe para isso foi uma solução bacana, e você ainda conseguiu resumir a funcionalidade em uma versão mais compacta.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!