2013-03-19 4 views
0

Je travaille sur un commutateur qui définit 2 variables en fonction de la valeur comme ceci:commutateur Javascript toujours défaut

switch(_drukte) { 
    case "normaal": 
     _gradients.push("green"); 
     _widths.push("20%"); 
    break; 
    case "drukker": 
     _gradients.push("yellow"); 
     _widths.push("40%"); 
    break; 
    case "gezellig druk": 
     _gradients.push("orange"); 
     _widths.push("60%"); 
    break; 
    case "druk": 
     _gradients.push("red"); 
     _widths.push("80%"); 
    break; 
    case "vol": 
     _gradients.push("full"); 
     _widths.push("100%"); 
    break; 
    default: 
     _gradients.push("green"); 
     _widths.push("20%"); 
    break; 
} 

Pour une raison quelconque cela appelle toujours la valeur par défaut. _drukte provient d'un AJAX obtenu sur un fichier JSON et la valeur change avec une boucle. J'ai alerté la valeur de _drukte et c'est comme prévu (actuellement c'est "normaal", "drukker", "gezellig druk", "druk" et "vol"). J'ai essayé de gâcher les autres cas (en rendant même le javascript invalide) et il appelle simplement le défaut.

Quelqu'un sait pourquoi?

+0

Pouvez-vous configurer un jsfiddle? –

+0

Montrer à titre d'exemple avec une valeur réelle pour '_drukte'. Et faire un 'console.log (_drukte)' avant votre déclaration de commutateur, probablement il y a un problème avec votre ajax. – Bergi

+0

Définissez d'abord __gradients comme table de hachage, puis essayez d'exécuter le code. – Amit

Répondre

2

Je ne veux pas se pencher trop loin de la fenêtre, mais je presque vous garantir que la valeur de retour de votre demande ajax ne correspond pas à 100% vos case « es. Si j'étais vous, je devrais directement console.log(_drukte); avant cette déclaration switch.

Peut-être des espaces blancs? Lettres majuscules?

C'est la meilleure réponse que je peux fournir sans voir votre code réel, alors essayez de comprendre quelle valeur exacte est contenue par _drukte lorsque le switch statement est rencontré.

+0

Peut-être même un problème de portée avec la boucle dont parle l'OP, ou peut-être que le 'switch' ne fait pas partie du callback readystatechange/success –

+0

console.log ne semble pas faire quoi que ce soit. – Parrotmaster

+0

@jAndy Ça ne marche pas, Fetch agissait. Quand je console.log _drukte il me montre 5 valeurs: ["normaal"] ["drukker"] ["gezellig druk"] ["druk"] ["vol"] (comme indiqué dans la console). – Parrotmaster

Questions connexes