2009-09-10 9 views
1

Est-il possible de mettre plusieurs instructions IF en Javascript? Si oui, j'ai beaucoup de problèmes avec la déclaration ci-dessous. Je me demandais si vous pouvez mettre une autre instruction IF entre si (données == 'valide') ET sinon? Je veux ajouter un autre si data == 'concept') entre les deux.Traitement de plusieurs instructions IF Javascript

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(); 
    } 
} 
+1

Voulez-vous dire une clause 'else if'? – LiraNuna

+0

... et je n'y ai pas pensé pourquoi? Merci! – Homework

+0

Sur une note non liée, vous devriez envisager d'utiliser des fonctions anonymes dans vos timers. – Kevin

Répondre

5

est ce que vous cherchez?

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

Je suis trop fatigué pour penser. Je mets elseif, au lieu d'ailleurs si. Merci! – Homework

+0

Alors qu'il faisait elseif une fonction au lieu de la fonction prédéfinie "else if". : ( – Homework

+3

@Joey: Ne regardez pas maintenant, mais votre VB montre –

3

vous pouvez utiliser else if

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

Si vous avez l'intention de la variable de données pour contenir de nombreuses valeurs différentes, vous pouvez trouver l'instruction switch mieux adapté à vos besoins:

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

Notez que les instructions break après chaque cas, que plusieurs instructions case peuvent être utilisées par condition, et qu'il existe un cas par défaut catch-call qui se déclenchera si rien d'autre ne correspond. L'instruction switch n'est rien de plus qu'une version plus concise de l'instruction If.

+0

Je vais essayer cette méthode, juste pour voir comment il fonctionne – Homework

2

Rien à voir avec la question, mais Joey a demandé des éclaircissements à l'aide d'une fonction anonyme avec sa minuterie:

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

Merci. l'avantage d'ajouter plus de fonctions serait? – Homework

+1

Cela n'ajoute pas plus de fonctions, c'est déclarant la fonction où il est utilisé comme une 'fonction anonyme', alias lambda ou fermeture.Il ne sert à rien de le déclarer séparément et de lui donner un nom puisque vous En outre, les fermetures ont des propriétés uniques et puissantes en ce qui concerne la portée variable qui sont très importantes dans le JavaScript avancé, mais c'est un tout autre problème! – JAL

+0

Clairement compréhensible. – Homework