2013-09-19 8 views
0

Каков правильный синтаксис для нажатия кнопки и наличие Javascript для выполнения любого заявления, которое у вас есть? Я сделал поиск Google, но есть несколько способов, или люди не очень хорошо объясняют параметры или функции.Javascript: Как выполнить действие одним нажатием кнопки?

Вот мой код. Все, что я хочу сделать, это когда я нажимаю «атаку» на свою «кнопку», монстр потеряет 10 л.с.

document.getElementById("attack").click(); = dragon.hp = dragon.hp - 10; 
+0

Вы взглянули на некоторые JS-библиотеки, такие как jQuery? Они делают этот тип вещей намного проще, особенно для новичков. – Jasper

ответ

5

Когда вы делаете .click(), вы вызываете функцию. ; - это то, как вы заканчиваете утверждения. Вы хотите, чтобы назначил функцией функции onclick.

Вы хотите что-то вроде этого:

document.getElementById("attack").onclick = function(){ 
    dragon.hp -= 10; 
}; 

еще лучше, вы действительно хотите:

document.getElementById("attack").addEventListener('click', function(){ 
    dragon.hp -= 10; 
}); 

P.S. dragon.hp -= 10; представляет собой сокращенную dragon.hp = dragon.hp - 10;

0

Если вы сделали что-то вроде этого:

  <a ..... onClick="deductHpPoints()">...</a> 

Затем в JavaScript:

  Function deductHpPoints() 
      { 
       //deduct logic 
      } 

Будет ли эта работа для вас? Для чего-то основного.

0

Вот что я хотел бы сделать:

<input type="button" value="Attack" onclick="attack()"> 

И тогда, где ваш JavaScript живет:

function attack() { 
    dragon.hp -= 10; 
}; 

На самом деле, я хотел бы сделать нападение в состоянии предназначаться разные вещи:

function attack(target) { 
    target.hp -= 10; 
}; 

Возможно, некоторые переключатели для выбора цели:

<input type="radio" name="monster" value="Dragon"> 
<input type="radio" name="monster" value="Beholder"> 
<input type="radio" name="monster" value="Minotaur"> 

Некоторый код, чтобы узнать, который был выбран один:

function discoverSelected(buttonName) { 
    var theArray = document.getElementsByName(buttonName); 
    for (var i = 0; i < theArray.length; i++) { 
     if (theArray[i].checked) { 
      return theArray[i].value; 
     }; 
    }; 
}; 

Сравните это имя массива монстров:

function whichMonster(monName) { 
    for (var i = 0; i < monsters.length; i++) { 
     if (monsters[i].name == monName) { 
      return monsters[i]; 
     }; 
    }; 
}; 

Затем, наконец, кнопка для атаки!

<input type="button" value="Attack" onclick="attack(whichMonster(discoverSelected("monster")))"> 
0

Просто продлить ответ на jQuery библиотеке, вы можете сделать это (после вызова jQuery библиотеки)

$("#attack").on('click', function(){ 
    dragon.hp -= 10; 
}); 

или, в случае, если кнопка #attack создается динамически

$(document).on('click', "#attack", function(){ 
     dragon.hp -= 10; 
    }); 
Смежные вопросы