2010-08-02 2 views
0

У меня есть функция, которая выглядит примерно так:JQuery/JavaScript - передача переменных функций

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

И моя переменная бросают в через:

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

Но когда я console.log или alert() все, что я получаю, это Undefined ...

Я пропустил трюк здесь? Я думал, что если я передам переменную в функцию (в этом случае enemyHealth), я должен ее восстановить?

Спасибо.

p.s.
Просто думал, я бы утверждать, что даже если я прохожу номер карты кодировкой (например, 5) через функцию - она ​​по-прежнему поступает в Undefined

+1

где код для вызова window.attack? Из внешнего вида, который не передает значение – DanSingerman

ответ

1

Вы вызов должен быть

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

Надеется, что это помогает.

+0

d'oh - не говорите ни слова. –

+0

Общая ошибка. Обвиняйте его в трудный день на работе. –

1

Вы уверены, что вы не имели в виду:

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

Фиксация цитирования так, чтобы значение currentEnemyHealth было встроено в строку?

0

currentEnemyHealth не распространяется на вызовы javascript.

Смежные вопросы