Javascript:如何通过单击按钮执行操作?

时间:2013-09-19 23:08:05

标签: javascript html css

单击按钮并让Javascript运行您拥有的任何语句的正确语法是什么?我做了谷歌搜索,但有多种方式或人们没有很好地解释参数或功能。

这是我的代码。我想做的就是当我点击“按钮”上的“攻击”时,怪物将失去10马力。

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

4 个答案:

答案 0 :(得分:6)

执行.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;

的简写

答案 1 :(得分:0)

如果你做了这样的事情:

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

然后在你的javascript中:

            Function deductHpPoints()
            {
              //deduct logic
             }

这对你有用吗?对于基本的东西。

答案 2 :(得分: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")))">

答案 3 :(得分:0)

只是为了扩展对jQuery库的响应,你可以这样做(在调用jQuery库之后)

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

或者,如果#attack按钮是动态创建的

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