我如何在Javascript中使用两个Onclick事件交换单元格
How do I swap cells using two Onclick Events in Javascript
我试图在javascript中使用两个单独的单击事件交换两个单元格。问题是第一次单击事件存储的值被第二次单击事件覆盖,并且控制台显示为第二次单击事件存储的stringneighbors值已被覆盖。这是我的代码:
//Listen to a Set of Click Events to Swap Cells
document.getElementById('board').addEventListener("click", function(e){
click1ID = event.target.id;
click1Class = event.target.className;
stringAdjacency1 = click1ID.replace('cell','')
console.log(stringAdjacency1);
document.getElementById('board').addEventListener("click", function(e){
click2ID = event.target.id;
click2Class = event.target.className;
stringAdjacency2 = click2ID.replace('cell','')
console.log(stringAdjacency2);
});
console.log(stringAdjacency1, stringAdjacency2);
});
function swapIds(click1ID, click1Class, click2ID, click2Class) {
//Are cells adjacent? If so, swap Cells
//Check the winning combinations to see if there's a new match;
//Swap cells;
});
请帮忙!谢谢你。
您正在添加一个单击事件侦听器,当通过单击第一个单元格触发该侦听器时,将会添加另一个单击事件侦听器。因此,当您单击第二个单元格时,它将触发第一个事件侦听器(覆盖该值),以及在第一个侦听器之后添加的第二个侦听器。
你只需要注册一个监听器,它的函数可以处理逻辑:
像这样的东西应该可以工作(没有测试):
var firstCell = null;
document.getElementById('board').addEventListener("click", function(e){
if(!firstCell) {
firstCell = e.target;
} else {
var secondCell = e.target;
// do whatever logic you want
// reset first cell
firstCell = null;
}
});
这将设置firstCell
为第一个点击单元格,然后第二次点击它将不再为空,所以它将进入else条件,你可以做任何你想做的。然后您将重置firstCell
,以便整个交互可以重复。
相关文章:
- 如何通过一个onclick事件更改两个单独的图像
- 一个按钮中的两个onClick功能,并希望一个接一个地发生一个单击功能
- onclick下拉菜单上的两个xmlhttp函数
- 如何在内联 onclick 事件中进行两个 javascript 函数调用
- (飞镖)我希望触发两个不同的onclick功能,具体取决于单击时是否选中了单选按钮.我该怎么做
- 我们可以调用两个函数 onClick 事件吗?
- 我可以在一个元素中有两个JavaScript onClick事件吗
- 链接中的链接onClick事件-避免触发两个单击事件
- Javascript在onclick上验证两个控件,但如果只有一个控件验证,则不保留值
- 一个onclick中有两个函数-Javascript
- 如何在两个onclick事件之间传递参数
- 在按钮的onclick事件中运行两个Javascript函数
- 两个OnClick事件重叠,导致第一个事件停止正常执行
- 如何在一个onclick函数中添加两个响应?html中的onclick是
- 在组合框中的 OnClick 事件上传递两个变量
- Javascript-调用两个onClick函数
- 如何在React中添加两个onClick函数
- 我如何在Javascript中使用两个Onclick事件交换单元格
- 我如何结合两个onclick功能,只运行它,如果有人点击"OK",而不是"取消"
- 我怎么能得到两个onClick调用火