Каков правильный синтаксис для нажатия кнопки, а Javascript запускает любое выражение, которое у вас есть? Я сделал поиск Google, но есть несколько способов, или люди не очень хорошо объясняют параметры или функции.
Вот мой код. Все, что я хочу сделать, это когда я нажимаю "атаку" на свою "кнопку", монстр потеряет 10 л.с.
document.getElementById("attack").click(); = dragon.hp = dragon.hp - 10;
Когда вы делаете .click()
вы вызываете функцию. ;
как вы заканчиваете утверждения. Вы хотите назначить функцию свойству onclick
.
Вы хотите что-то вроде этого:
document.getElementById("attack").onclick = function(){
dragon.hp -= 10;
};
Еще лучше, вы действительно хотите:
document.getElementById("attack").addEventListener('click', function(){
dragon.hp -= 10;
});
PS dragon.hp -= 10;
является сокращением для dragon.hp = dragon.hp - 10;
Чтобы расширить ответ на библиотеку jQuery
, вы можете сделать это (после вызова библиотеки jQuery
)
$("#attack").on('click', function(){
dragon.hp -= 10;
});
или, если кнопка #attack
создается динамически
$(document).on('click', "#attack", function(){
dragon.hp -= 10;
});
Если вы сделали что-то вроде этого:
<a ..... onClick="deductHpPoints()">...</a>
Затем в вашем javascript:
Function deductHpPoints()
{
//deduct logic
}
Будет ли это работать на вас? Для чего-то основного.
Вот что я буду делать:
<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")))">