Pergunta

É possível colocar várias instruções IF em Javascript? Se assim for, estou tendo uma boa quantidade de problemas com a declaração abaixo. Eu queria saber se você pode colocar outra instrução IF entre se (dados == 'válidas') e outra ? Eu quero adicionar outro se os dados == 'conceito') entre os dois.

if (data == 'valid') {
    $("#file").slideUp(function () {
        $("#file").before('<div class="approvedMessage">WIN WIN WIN!</div>');
        setTimeout(ApprovedProof, 5000);
    });

    function ApprovedProof() {
        $("#file").slideDown();
        $('.approvedMessage').fadeOut();
    }

}
else {

    $("#file").slideUp(function () {
        $("#file").before('<div class="deniedMessage">NO NO NO!</div>');
        setTimeout(DeniedProof, 5000);
    });

    function DeniedProof() {
        $("#file").slideDown();
        $('.deniedMessage').fadeOut();
    }
}
Foi útil?

Solução

é isso que você está procurando?

if(data == 'valid') {
    // block 1
} else if (data == 'concept') {
    // block 2
} else {
    // block 3
}

Outras dicas

Se você pretende para a variável de dados para armazenar muitos valores diferentes, você pode encontrar a instrução switch um melhor ajuste para suas necessidades:

switch(data)
{
  case "valid":
     //stuff
     break;
  case "concept":
     //stuff
     break;
  case "this": case "that":
     //more stuff
     break;
  default:
     break;
}

Note que as declarações pausa depois de cada caso, que várias instruções caso pode ser usado por condição, e que não é um caso padrão catch-chamada que irá disparar se nada mais correspondido. A instrução switch é nada mais do que uma versão mais concisa do If.

você poderia usar else if

if (data == "valid") {
    // stuff here
} else if (data == "concept") {
    // more stuff
} else {
    // other stuff
}

não relacionados à pergunta, mas Joey pediu esclarecimentos sobre usando uma função anônima com o seu temporizador:

if (data == 'valid') {
    $("#file").slideUp(function () {
        $("#file").before('<div class="approvedMessage">WIN WIN WIN!</div>');
        setTimeout(function () {
            $("#file").slideDown();
            $('.approvedMessage').fadeOut();
        }, 5000);
    });
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top