我正在做一个国际象棋游戏,我有一个div作为一个块,在这个div中有一个按钮和一个典当div,我给每个按钮点击一下就可以移动我的棋子,现在为了杀死一个棋子,我想再点击一下按钮,但是由于某些原因,我不能帮助您。
我的代码
function hlblp(a) {
let pawn = document.getElementsByClassName("blp")[a]
let parent = Number.parseInt(pawn.parentElement.id)
hightlitght(parent)
for (let i=0; i<64; i++) {
let block = document.getElementsByClassName("Btns")[i]
block.onclick = function() {movepawn(block, pawn)};
}}
function removepawn(b) {console.log(b[0])}
function hightlitght(a) {
if (var1==true) {
var1 = false
let var2 = a-10
var2 = var2+"b"
if (occupied[var2]==true) {
let b1 = a-20
b11 = "r"+b1
let occ1 = b1+"b"
b11 = document.getElementsByClassName(b11)[0]
// this is where i want to give an second onclick
b11.onclick = function() {removepawn(b11)};
if ( occupied[occ1] == false ) {
if (
b1 < 89 && b1 > 80 ||
b1 < 79 && b1 > 70 ||
b1 < 69 && b1 > 60 ||
b1 < 59 && b1 > 50 ||
b1 < 49 && b1 > 40 ||
b1 < 39 && b1 > 30 ||
b1 < 29 && b1 > 20 ||
b1 < 19 && b1 > 10) {b11.style.display = "block";
}}
}}发布于 2022-12-01 10:50:28
你不应该使用:
block.onclick = function() { ... }因为当你第二次吹气到onclick时,你就移除了上一次。
您可以创建将这两个事件结合在一起的函数,但这并不优雅。
或者你可以用正确的方式:
block.addEventListener('click', function() { ... });发布于 2022-12-01 10:50:40
请用addEventListener代替ELEMENT.onevent.如果需要删除当前的onClick事件并添加一个新事件,则可以:
LINKS:
addEventListener:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener removeEventListener:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener
https://stackoverflow.com/questions/74640632
复制相似问题