Javascript 单击停止正在交换的图像

Javascript 单击停止正在交换的图像,javascript,html,css,Javascript,Html,Css,我试图用JavaScript编写一个跳棋游戏,但在一次交换后停止图像时遇到了问题。在下面的当前实现中,单击图像交换,然后当您单击电路板的另一部分时,会放置另一个“块”。但当你再次点击时,另一个被放置,另一个等等。当你再次点击时,我试图不让一块被放置 var imageSwaped = false; function clickOnBlankSpace(object) { this.src="Directory/BlackPiece.png"; imageSwaped = tru

我试图用JavaScript编写一个跳棋游戏,但在一次交换后停止图像时遇到了问题。在下面的当前实现中,单击图像交换,然后当您单击电路板的另一部分时,会放置另一个“块”。但当你再次点击时,另一个被放置,另一个等等。当你再次点击时,我试图不让一块被放置

var imageSwaped = false;

function clickOnBlankSpace(object)
{
    this.src="Directory/BlackPiece.png";
    imageSwaped = true;
    this.removeEventListener("click", clickOnBlankSpace);
    return;
}



var BlackPieces = document.getElementsByClassName("BlackPiece");
var RedPieces = document.getElementsByClassName("RedPiece");
var BlankSpaces = document.getElementsByClassName("BlankSpace");


for(var j = 0; j<BlackPieces.length;j++)
{
    var BlackPiece = BlackPieces[j];
    BlackPiece.addEventListener("click", function()
    {
        this.src="Directory/BlackPieceH.png";
        this.className ="BlackPieceH";

        for(var j = 0; j<BlankSpaces.length;j++)
    {
            var BlankSpace = BlankSpaces[j];
            if (!imageSwaped) BlankSpace.addEventListener("click",     clickOnBlankSpace);
        }
    })
}

与论坛网站不同,我们不使用感谢、感谢的帮助或签名。请参阅。我不会在循环中定义EventListener,而是使用事件委派,仅将一个事件侦听器绑定到整个板或字段或div,并使用e作为函数参数执行一项任务,并检查通过e.target单击的是哪一部分。您能再解释一下吗?这听起来是个不错的选择。我遇到的另一个问题是,能够使用事件侦听器编写条件语句,这样,只有在单击某个对象时,以及在发生其他事件时,单击才能起作用。