[英]Javascript Generated HTML Buttons with onClick Custom Function
[英]Buttons in HTML not executing onclick function
創建按鈕后,它們在單擊它們時不會做出反應,就像 onclick 屬性中指定的onclick
未定義或屬性根本不存在一樣
我試過了:
<button>
而不是<input type="button>"
我希望 function 在每次按下按鈕后都能正確執行,因此button.value
會發生變化
我得到了什么:
<form id="game" style="display:none;">
<input type="button" class="but" id="but0" onclick="click(0)">
<input type="button" class="but" id="but1" onclick="click(1)">
<input type="button" class="but" id="but2" onclick="click(2)">
<input type="button" class="but" id="but3" onclick="click(3)">
<input type="button" class="but" id="but4" onclick="click(4)">
<input type="button" class="but" id="but5" onclick="click(5)">
<input type="button" class="but" id="but6" onclick="click(6)">
<input type="button" class="but" id="but7" onclick="click(7)">
<input type="button" class="but" id="but8" onclick="click(8)">
</form>
function click(but) {
switch (but) {
case 0:
if (v0 != undefined) { return v0 }
v0 = rnd;
document.getElementById(`but0`).value = rnd;
break;
case 1:
if (v1 != undefined) { return v1 }
v1 = rnd;
document.getElementById(`but1`).value = rnd;
break;
case 2:
if (v2 != undefined) { return v2 }
v2 = rnd;
document.getElementById(`but2`).value = rnd;
break;
case 3:
if (v3 != undefined) { return v3 }
v3 = rnd;
document.getElementById(`but3`).value = rnd;
break;
case 4:
if (v4 != undefined) { return v4 }
v4 = rnd;
document.getElementById(`but4`).value = rnd;
break;
case 5:
if (v5 != undefined) { return v5 }
v5 = rnd;
document.getElementById(`but5`).value = rnd;
break;
case 6:
if (v6 != undefined) { return v6 }
v6 = rnd;
document.getElementById(`but6`).value = rnd;
break;
case 7:
if (v7 != undefined) { return v7 }
v7 = rnd;
document.getElementById(`but7`).value = rnd;
break;
case 8:
if (v8 != undefined) { return v8 }
v8 = rnd;
document.getElementById(`but8`).value = rnd;
break;
}
update()
if (rnd == '❌') {
rnd = '⭕'
return '❌'
}
else {
rnd = '❌'
return '⭕'
}
}
答案有點傻,但是你的按鈕什么都不做的原因是因為click
是在元素的上下文中保留的。 試一試,設置onclick="console.log(click)"
,您會看到它顯示帶有本機代碼的 function。 要解決您的問題,請將您的 function click
重命名為其他名稱,例如myClick
,然后碰撞就會消失。
編輯:
看看 function 'click' 真正調用的是這個
嘗試使用大寫“C”的 onClick。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.