2010-08-02 6 views
0

J'ai une fonction qui ressemble à ceci:jQuery/JavaScript - passage de variables aux fonctions

window.attack = function(enemyHealth){ 
     attackChance = Math.floor(Math.random()*11); 
     console.log("enemyHealth: "+enemyHealth); //undefined... 
     if (attackChance < 5) { //hit 
      hitDamage = Math.floor(Math.random()*playerDamage+1); 
      enemyHealth = enemyHealth - hitDamage; 
      $('#enemyhealth').val(enemyHealth); 
      if (enemyHealth < 1) { 
       alert('You killed the '+currentEnemy); 
       removeOverlayNow(); 
      } 
     } else if (attackChance >= 5) { //miss 
      hitDamage = Math.floor(Math.random()*maxDamage+1); 
      alert('You miss and get attacked for '+hitDamage); 
      health = health - hitDamage; 
      $(healthDisplay).val(health); 
      checkHealth(); 
     } 
    } 

Et ma variable est jeté via:

onclick="flee('+currentEnemyHealth+')"

Mais quand je console.log ou alert() tout ce que je reçois est Undefined ...

Est-ce qu'il me manque un truc ici? Je pensais que si je passe une variable dans la fonction (dans ce cas enemyHealth), que je devrais être en mesure de le récupérer?

Merci.

p.s.
Je pensais juste que je dire que même si je passe un numéro codé carte (par exemple 5) par la fonction - il arrive encore que Undefined

+1

Du regard de celui qui ne passe pas une valeur – DanSingerman

Répondre

1

appel Vous devriez être

onclick="flee(" + currentEnemyHealth + ")" 

Hope this helps. Où est le code d'appel de window.attack?

+0

d'oh - ne dites pas un mot. –

+0

Erreur commune. C'est la faute d'une dure journée de travail. –

1

Êtes-vous sûr de ne pas dire:

onclick="flee("+currentEnemyHealth+")" 

Correction du quoting de sorte que la valeur de currentEnemyHealth soit incorporée dans la chaîne?

0

currentEnemyHealth n'est pas dans le périmètre des appels javascript.

Questions connexes