Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

REAPROVEITAMENTO DE CÓDIGO

Fala pessoal belezinha ? Bom, vou tentar explicar aqui qual a minha dúvida, se não ficar claro vocês me perguntem por favor.

Durante o curso criamos 4 arquivos JS:

"filta.js" "calcula-imc.js" "remove-paciente.js" "form.js"

No arquivo "form.js" temos duas funções:

function validaPeso(peso) {
    if (peso > 0 && peso <= 1000) {
        return true;
    } else {
        return false;
    }
}

function validaAltura(altura) {
    if (altura > 0 && altura <= 3.00) {
        return true;
    } else {
        return false;
    }
}

No arquivo "calculo-imc.js" utilizamos essa função para validar se os valores estão corretos antes de efetuar o cálculo. Temos uma linha nesse arquivo( "calculo-imc.js") assim:

var titulo = document.querySelector(".titulo");
titulo.textContent = "Aparecida Nutricionista";

var pacientes = document.querySelectorAll(".paciente");

for (var i = 0; i < pacientes.length; i++) {

    var paciente = pacientes[i];

    var tdPeso = paciente.querySelector(".info-peso");
    var peso = tdPeso.textContent;

    var tdAltura = paciente.querySelector(".info-altura");
    var altura = tdAltura.textContent;

    var tdImc = paciente.querySelector(".info-imc");

  *var pesoEhValido = validaPeso(peso);*
    *var alturaEhValida = validaAltura(altura);*

reparem nas últimas linhas que ele chama as funções validaPeso e validaAltura que está em outro arquivo ("form.js").

Quando eu tento fazer neste formato, o console me aparece o erro dizendo que essas funções não estão definidas no arquivo "calcula-imc.js" e não efetua o calculo, só consegui fazer funcionar, copiando essas duas funções do arquivo "form.js"" e colocando-as no arquivo calcula-imc.js no caso estou duplicando essas funções em dois arquivos!

Alguém saberia me dizer o que pode estar ocorrendo para isso não funcionar ?

Obrigado! ps: eu chamei os arquivos no .html:

        <script src="js/calcula-imc.js" ></script>
        <script src="js/form.js" ></script>
        <script src="js/remove-paciente.js" ></script>
        <script src="js/filtra.js" ></script>
2 respostas
solução!

Oi Leandro,

Como você quer executar as funções no arquivo calcula-imc.js é importante que elas sejam criadas antes desse arquivo ser executado, no seu caso, precisaria inverter a ordem que importa os <scripts>:

<script src="js/form.js" ></script>
<script src="js/calcula-imc.js" ></script>

Ola Artur tudo bem?

Fiz a alteração e funcionou, muito obrigado!