![](/img/trans.png)
[英]How do you increment a click counter on a button and make the button perform its original action?
[英]Javascript: How do I perform a action with the click of a button?
單擊按鈕並使Javascript運行您所擁有的任何語句的正確語法是什么? 我做了一個google搜索,但是有多種方法,或者人們沒有很好地解釋參數或功能。
這是我的代碼。 我要做的就是當我在“按鈕”上單擊“攻擊”時,怪物會損失10 hp。
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;
簡寫dragon.hp = 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")))">
只是為了將響應擴展到jQuery
庫,您可以執行此操作(在調用jQuery
庫之后)
$("#attack").on('click', function(){
dragon.hp -= 10;
});
或者,如果#attack
按鈕是動態創建的
$(document).on('click', "#attack", function(){
dragon.hp -= 10;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.